我需要创建一个IAM策略,该策略仅限制对用户文件夹的访问。我遵循此处指定的准则:
https://docs.amazonaws.cn/en_us/AmazonS3/latest/dev/walkthrough1.html
我也正在使用此S3浏览器,因为我不希望用户使用控制台:https://s3browser.com/
但是,当我尝试导航到存储桶根文件夹时,它给了我一个“访问被拒绝。您想尝试请求者付费访问吗?”错误。
但是,如果我在用户文件夹中指定前缀,则不会收到任何错误。这是我创建的IAM策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowRequiredAmazonS3ConsolePermissions",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Resource": "*"
},
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": [
"arn:aws:s3:::bucket-name"
],
"Condition": {
"StringEquals": {
"s3:prefix": [
""
],
"s3:delimiter": [
"/"
]
}
}
}
]
}
此IAM策略的预期结果应允许用户从根文件夹导航到他/她的特定文件夹。
答案 0 :(得分:0)
您的s3:ListBucket
有一个条件,即只允许使用某些前缀的对象列表。这是此策略的预期行为。如果您删除此条件,那么此人可以查看整个存储桶中的所有对象。
由于不允许用户查看根目录下的文件夹,因此无法让用户通过gui进行导航。