要限制IAM策略仅允许访问AWS S3存储桶中的单个子文件夹,可以使用AWS的条件语句和策略变量来实现。以下是一个示例策略,该策略允许用户仅访问名为“my-bucket”中名为“sub-folder”的子文件夹:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessToSpecificBucket",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::my-bucket"
]
},
{
"Sid": "AllowAccessToSpecificFolder",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::my-bucket/sub-folder/*"
]
}
]
}
在上面的示例中,第一个语句允许用户列出存储桶“my-bucket”,并获取其位置信息。第二个语句允许用户对“my-bucket/sub-folder”下的对象执行获取、上传和删除操作。
你可以将上述策略保存为一个IAM策略,并将其分配给特定的IAM用户或组。确保将“my-bucket”和“sub-folder”替换为实际的存储桶名称和子文件夹名称。
这样,用户只能访问指定的子文件夹,而无法访问其他文件夹或存储桶中的对象。