【发布时间】:2021-11-24 01:01:35
【问题描述】:
aws 账户中有多个 S3 存储桶。所有用户都被分配了一个组策略,该策略为 S3 提供所有访问权限。
但现在的要求是 -> 有一个 S3 存储桶,应该限制所有用户的访问。在此存储桶中,有根据 aws 用户名的文件夹。用户应该只能访问具有她的用户名的文件夹中的对象。该用户应具有该特定文件夹的所有权限,并且该用户不应能够访问具有其他用户名的文件夹。
所有 S3 存储桶:存储桶 1 、存储桶 2 到存储桶 10
特定存储桶:bucket3
特定存储桶中的对象:bucket3/report/user={user_name}
ex : bucket3/report/user=user1 ,bucket3/report/user=user2
要求:
- user1 里面有list、put、delete 对象-> bucket3/report/user=user1
- user1 无法访问 bucket3/report/user=user2
以下是我们创建的策略。此政策禁止访问所有 S3 存储桶。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowGroupToSeeBucketListInTheConsole",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
},
{
"Sid": "AllowRootAndHReportListingOfBucket",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::bucket3"
],
"Condition": {
"StringEquals": {
"s3:prefix": [
"",
"report/"
],
"s3:delimiter": [
"/"
]
}
}
},
{
"Sid": "DenyListingOfOtherUserFolder",
"Action": [
"s3:*"
],
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::bucket3"
],
"Condition": {
"StringNotLike": {
"s3:prefix": [
"report/user=${aws:username}/*",
"report/user=${aws:username}"
]
}
}
},
]
}
由于我是 aws 新手,我无法解决问题。我应该如何更新政策才能满足要求?
提前致谢
【问题讨论】:
-
如果您还没有使用单独的帐户进行隔离,您应该考虑一下。 AWS 现在正在推动这一战略,而且效果很好。
标签: amazon-web-services amazon-s3 amazon-iam aws-policies