我正在使用s3 buccet存储文件和云范围来分发它们。我有一个可以自动处理同步的工具,并且效果很好。
但是,我也希望能够以编程方式创建云偏转无效。我需要在工具的策略中添加什么声明,以便仅针对此特定分布创建无效?
现在,我有这个说法:
{
"Effect": "Allow",
"Action": [
"cloudfront:CreateInvalidation"
],
"Resource": "*"
}
,但是,如您所见,它允许为帐户中的任何分布创建无效。
我试图将这些值用于Resource
属性,但是由于某种原因,该工具给了我一个错误,称访问被拒绝:
-
arn:aws:cloudfront::12345678:distribution/ABCDEFG
-
arn:aws:cloudfront:::distribution/ABCDEFG
我需要在Resource
属性中指定什么,以便仅针对特定分布创建无效?
它的ARN是arn:aws:cloudfront::12345678:distribution/ABCDEFG
。
更新:从2021年开始,cloudfront:CreateInvalidation
操作支持资源级别的权限,可用于仅允许仅使特定的分布无效。请参阅下面的 @GraphicalDot的答案。原始答案 - 截至2017年 - 下面。
cloudfront:CreateInvalidation
命令不支持资源级权限。因此,仅支持*
。因此,不可能限制用户/角色仅能使特定分布无效。
来源:http://docs.aws.amazon.com/amazoncloudfront/latest/developerguide/cf-api-permissions-ref.html
现在CloudFront支持发行级别的权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"cloudfront:UpdateDistribution",
"cloudfront:DeleteDistribution",
"cloudfront:CreateInvalidation"
],
"Resource": "arn:aws:cloudfront::<account_id>:distribution/<distribution_id>"
}
]
}
更多详细信息:https://docs.amazonaws.cn/en_us/amazoncloudfront/latest/developerguide/access-control-overview.html