我尝试允许我们的一个开发人员(myapp-dev1(访问一个显式S3-Bucket。
-
我创建了一个策略,该策略应该允许 CRUD 选项(他应该能够将图像文件写入和读取到该存储桶中,并且只能写入该存储桶。
"s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:ListObjects"
-
我创建了一个名为 dev1 的用户,并将他分配给该新策略(该用户不在组中,也没有角色(
- 我创建了一个名为
ARN: arn:aws:s3:::myapp-dev1-bucket
-
然后在这个存储桶中,我切换到"存储桶策略"并使用"策略生成器"并允许当时的每个操作。到目前为止,所有其他设置都失败了,这个也失败了。它看起来像这样:
{ "Id": "Policy123456789", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt123456789", "Action": "s3:*", "Effect": "Allow", "Resource": "arn:aws:s3:::myapp-dev1-bucket", "Principal": { "AWS": [ "arn:aws:iam::1234567890:user/myapp-dev1" ] } } ] }
但我仍然得到一个
Excon::错误::禁止访问: 预期(200( <=> 实际(403 禁止访问(
- 我做错了什么?
- 我错过了什么?
- 是否还必须允许用户列出存储桶?
请帮忙!
试试这个,
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::Bucket_Name"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListObject"
],
"Resource": [
"arn:aws:s3:::Bucket_Name/*"
]
}
]
}