我正在为用户创建一个设置以在 S3 存储桶中上传文件。用户将通过 Cyberduck S3 登录以访问他们的存储桶。
这是放置文件的基本方式:
- 存储桶/user1/fileX
- 存储桶/user1/fileY
- 存储桶/user2/fileX
- 存储桶/user2/fileY
当用户浏览以上传文件时,我想防止他们看到哪些其他用户可以访问存储桶。User1 应该看不到 user2 文件夹。这可能吗?
当前政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUserToSeeBucketListInTheConsole",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
},
{
"Sid": "AllowRootAndHomeListingOfCompanyBucket",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::bucketname"
],
"Condition": {
"StringEquals": {
"s3:prefix": [
""
]
}
}
},
{
"Sid": "AllowListingOfUserFolder",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::bucketname"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"${aws:username}/*"
]
}
}
},
{
"Sid": "AllowAllS3ActionsInUserFolder",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::bucketname/${aws:username}/*"
]
}
]
}