仅验证特定分配的 CloudFront 策略

CloudFront policy to invalidate only specific distrubution

我正在使用 S3 存储桶存储文件并使用 CloudFront 分发它们。我有一个自动处理同步的工具,效果很好。

但是,我还希望能够以编程方式创建 CloudFront 失效。我需要在工具的策略中添加什么声明才能允许仅为该特定分发创建失效?

现在,我有这样的说法:

{
    "Effect": "Allow",
    "Action": [
        "cloudfront:CreateInvalidation"
    ],
    "Resource": "*"
}

但是,如您所见,它允许为帐户中的任何分配创建无效。

我曾尝试将这些值用于 Resource 属性,但由于某种原因该工具给了我一个错误,说访问被拒绝:

我需要在 Resource 属性 中指定什么才能允许仅针对特定分布创建失效?

例如,它的 ARN 是 arn:aws:cloudfront::12345678:distribution/ABCDEFG

cloudfront:CreateInvalidation命令不支持资源级权限。因此,仅支持 *。因此,不可能将 user/role 限制为只能使特定分布无效。

来源:http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cf-api-permissions-ref.html

现在 Clodfront 支持使用 IAM 策略的分发级别权限。

{
    "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