我试图让程序化的IAM用户访问单个存储桶 .
我设置了以下策略并将其附加到用户:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mybucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
}
]
}
尝试以编程方式上传文件,我得到了403 .
我从这里得到了这个政策:
Writing IAM Policies: How to Grant Access to an Amazon S3 Bucket
我通过添加AWS托管策略AmazonS3FullAccess验证了其他所有功能,之后我的上传成功了 . 但我宁愿不给这个用户完全访问权限 .
此用户没有附加其他政策 .
2 回答
您可以尝试使用此策略来完全访问 particular bucket :
由于您要提供
Put
,Get
,Delete
,因此您也可以提供对特定存储桶的完全访问权限 .您的保单没有任何问题 . 确保在IAM策略中使用正确的存储桶名称并将策略添加到用户 .
您可以使用IAM Policy Simulator进行测试 . 也许你应该考虑政策生效的时间,但它是"almost immediately" . 见this answer .