使用AWS CLI创建CloudFront失效时访问被拒绝

时间:2017-06-29 16:55:51

标签: amazon-web-services amazon-cloudfront amazon-iam aws-cli

我使用AWS CLI在脚本中创建CloudFront分配:

aws configure set preview.cloudfront true
aws cloudfront create-invalidation --distribution-id ABCD1234 --paths '/*'

我制定了一份政策:

{
    "Sid": "xxx",
    "Effect": "Allow",
    "Action": [
        "cloudfront:CreateInvalidation"
    ],
    "Resource": [
        "arn:aws:cloudfront::xxx:distribution/ABCD1234"
    ]
}

该策略附加到运行该命令的用户。但是,我仍然会收到此错误:

  

调用CreateInvalidation操作时发生客户端错误(AccessDenied):用户:arn:aws:iam :: xxx:用户/ yyy无权执行:cloudfront:CreateInvalidation

1 个答案:

答案 0 :(得分:3)

问题在于CloudFront无法使用指定资源的策略。 "加宽"该政策修复了错误。

This support thread州:

  

CloudFront不支持IAM的资源级权限。

它也被埋在documentation for CloudFront

Operation:             POST Invalidation (CreateInvalidation)
Required Permissions:  cloudfront:CreateInvalidation
Resources:             *

这意味着政策需要:

{
    "Sid": "xxx",
    "Effect": "Allow",
    "Action": [
        "cloudfront:CreateInvalidation"
    ],
    "Resource": [
        "*"  <-- must be a wildcard
    ]
}