基本上,这个政策是针对AWS转移家庭的。我需要拒绝对S3桶中特定文件夹的所有访问。我尝试了下面的策略,但仍然能够列出文件夹的内容。但是由于PUT和DELETE操作,它被拒绝了。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:ListBucketVersions",
"s3:GetBucketAcl"
],
"Resource": [
"arn:aws:s3:::${bucket_name}"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:GetObjectAcl",
"s3:GetObjectVersionTagging",
"s3:GetObjectVersionAcl",
"s3:GetObjectVersion"
],
"Resource": [
"arn:aws:s3:::${bucket_name}/*"
]
},
{
"Effect": "Deny",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::${bucket_name}/app/restricted",
"arn:aws:s3:::${bucket_name}/app/restricted/*"
]
}
]
}Expected: aws s3 ls s3://sample_bucket/app/restricted/data -拒绝访问
行为: aws s3 ls s3://sample_bucket/app/restricted/data -列出文件夹的所有内容
发布于 2022-11-08 21:07:54
ListBucket操作(列出桶中的对象)是一个桶级权限,因此它忽略了提供的Resource中的路径。
相反,您可以在Condition参数中指定路径。
来自Amazon S3 Bucket: Deny List, Read, Write to specific folder - Stack Overflow
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::${bucket_name}",
"Condition": {
"StringLike": {
"s3:prefix": "app/restricted/*"
}
}
}
]
}这将在前缀为Deny时列出桶的内容。将此语句添加到现有策略中,因为它特别适用于ListBucket。保留现有的Deny语句,因为它适用于其他操作,如GetObject和PutObject (它们确实接受resource中的路径)。
https://stackoverflow.com/questions/74364447
复制相似问题