Dan*_*umb 5 aws-cloudformation serverless-framework
我有一个从无服务器YAML文件创建的CloudFormation堆栈。
资源之一是:
"S3BucketWebRoot": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": "samhain.today",
"AccessControl": "PublicRead",
"WebsiteConfiguration": {
"IndexDocument": "index.html",
"ErrorDocument": "404.html"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在部署Stack文件时没有任何问题(包括创建S3存储桶本身),但是当Stack开始构建时,我得到了:
14:38:46 UTC-0500 CREATE_FAILED AWS::S3::Bucket S3BucketWebRoot API: s3:CreateBucket Access Denied
Run Code Online (Sandbox Code Playgroud)
问题是,与无服务器服务关联的用户作为其策略的一部分:
{
"Effect": "Allow",
"Action": [
"s3:CreateBucket",
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket",
"s3:DeleteObject",
"s3:DeleteBucket",
"s3:ListBucketVersions"
],
"Resource": [
"arn:aws:s3::*:*"
]
}
Run Code Online (Sandbox Code Playgroud)
我什至该如何调试呢?我Resource错了,或者正在使用其他用户,但这没有任何意义,因为他们已附加到访问密钥ID上。
Joh*_*ein -4
将资源更改为:
"Resource": "*"
Run Code Online (Sandbox Code Playgroud)
这将允许对任何资源执行给定的操作。您的操作均与 S3 相关,因此它们将被允许在任何 Amazon S3 存储桶上运行。
如果您想允许它仅在一个存储桶上运行,请使用:
"Resource": "arn:aws:s3:::BUCKET-NAME"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1738 次 |
| 最近记录: |