Nat*_*ini 4 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 '/*'
Run Code Online (Sandbox Code Playgroud)
我用这个语句设置了一个策略:
{
"Sid": "xxx",
"Effect": "Allow",
"Action": [
"cloudfront:CreateInvalidation"
],
"Resource": [
"arn:aws:cloudfront::xxx:distribution/ABCD1234"
]
}
Run Code Online (Sandbox Code Playgroud)
该策略附加到运行命令的用户。但是,我仍然收到此错误:
调用 CreateInvalidation 操作时出现客户端错误 (AccessDenied):用户:arn:aws:iam::xxx:user/yyy 未获授权执行:cloudfront:CreateInvalidation
问题是 CloudFront 无法使用指定资源的策略。“扩大”政策修复了错误。
此支持线程指出:
CloudFront 不支持 IAM 的资源级权限。
它也隐藏在CloudFront的文档中:
Operation: POST Invalidation (CreateInvalidation)
Required Permissions: cloudfront:CreateInvalidation
Resources: *
Run Code Online (Sandbox Code Playgroud)
这意味着政策需要是:
{
"Sid": "xxx",
"Effect": "Allow",
"Action": [
"cloudfront:CreateInvalidation"
],
"Resource": [
"*" <-- must be a wildcard
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1653 次 |
| 最近记录: |