我正在尝试创build一个命令,在推出新代码时使CloudFront分发无效。 这是一个尝试解决新推出的HTML不需要24小时出现在我的networking应用程序的问题。 这个想法来自于这个AWS CLI COMMAND REFERENCE
这里是命令:
aws cloudfront create-invalidation --distribution-id XXXXXXXXXXXXXX --invalidation-batch file://invbatch.json
这是我运行命令时得到的响应:
调用CreateInvalidation操作时发生客户端错误(AccessDenied):用户:arn:aws:iam :: XXXXXXXXXXXXXX:user / cats-kittens-beanstalk-user无权执行:cloudfront:CreateInvalidation
任何想法,为什么这可能是? 我知道,即使用户有权在某些情况下运行命令,AWS也会抛出此访问被拒绝 – 请参阅此处 。
IAM策略不允许限制访问特定的CloudFront分配。 解决scheme是为资源使用通配符,而不是仅引用特定的CloudFront资源。 添加到您的IAM政策将解决您遇到的问题。
以下是IAM政策工作中的一个例子:
{ "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "cloudfront:CreateInvalidation", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations" ], "Resource": "*" } ] }
文档: