这是我在Amazon S3中编写的策略。我以为它应该为子文件夹提供访问权限,因为*,但是当用户尝试创建或查看子文件夹时,它为访问提供了拒绝错误。我怎样才能改变它的工作方式?
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUserToSeeBucketListInTheConsole",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
},
{
"Sid": "AllowRootAndMediaListingOfCompanyBucket",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::mycoolbucket"
],
"Condition": {
"StringEquals": {
"s3:prefix": [
"",
"media/"
],
"s3:delimiter": [
"/"
]
}
}
},
{
"Sid": "AllowAllS3ActionsInMediaFolder",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::mycoolbucket/media/*"
]
}
]
}
更多细节:
我以用户身份登录控制台。我去了媒体文件夹。然后,我单击媒体内部的文件夹,并收到消息“错误访问被拒绝”。
您缺少列出媒体文件夹内容的权限。将以下语句添加到您的策略中。
注意:您的策略应添加到用户而不是存储桶本身。更好的选择是创建一个IAM组,将策略附加到该组,然后将每个用户添加到该组(您提到您正在做的事情)。
{
"Sid": "AllowListingOfMediaFolder",
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mycoolbucket"],
"Condition":{"StringLike":{"s3:prefix":["media/*"]}}
},
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句