我正在尝试创建一个策略,以供部署在ECS中的应用程序使用,以获取对象/放置/删除存储桶中的某些文件。 我正在创建的策略如下:
CLIENTINDIVIDUAL
但是当我尝试将文件上传到存储桶时,我仍然遇到“访问被拒绝”错误,我看到了一些AWS示例,人们在其中将策略中的资源定义为:
CLIENTPRACTICE
请注意/ *。
所以我的问题是我什么时候应该使用/ *,什么时候不应该使用它(我应该针对哪个权限使用它)。
答案 0 :(得分:4)
您必须同时执行这两项操作,这意味着您需要存储桶,存储桶本身和存储桶中的对象的权限。每层都可以控制。
在以下策略通知中,分为三个部分。第一部分提供了列出帐户中存储桶的权限。下一部分提供了列出存储桶内容和获取存储桶的location属性的权限。第三部分控制您在存储桶中可以执行的操作。
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:ListAllMyBuckets"
],
"Resource":"arn:aws:s3:::*"
},
{
"Effect":"Allow",
"Action":[
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource":"arn:aws:s3:::examplebucket"
},
{
"Effect":"Allow",
"Action":[
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject"
],
"Resource":"arn:aws:s3:::examplebucket/*"
}
]
}