我想向用户授予在 Amazon Simple Storage Service (Amazon S3) 控制台中访问某个桶或文件夹(前缀)的权限。但是,我不希望该用户看到账户中的其他桶或桶中的其他文件夹。
简短描述
更改用户的 AWS Identity and Access Management (IAM) 权限,以限制用户在 Amazon S3 控制台中访问特定桶或文件夹(前缀)的权限:
1.删除 s3:ListAllMyBuckets 操作权限。
2.仅为您希望用户访问的桶或文件夹添加 s3:ListBucket 权限。要允许用户从桶或文件夹上传和下载对象,您还必须包括 s3:PutObject 和 s3:GetObject。
解决方法
1.打开 IAM 控制台。
2.选择您想要限制访问权限的 IAM 用户或角色。
3.在 IAM 用户或角色的权限选项卡中,展开每个策略以查看其 JSON 策略文档。
4.在 JSON 策略文档中,搜索向用户授予 s3:ListAllMyBuckets 操作权限或 s3:* 操作(所有 S3 操作)权限的策略。
5.修改策略以删除 s3:ListAllMyBuckets 操作权限。
注意:如果附加的用户策略允许对“*”资源进行 s3:* 或完全管理员访问,则该策略包含 s3:ListAllMyBuckets 权限。请删除“*”资源。然后,使用以下示例策略之一。
6.仅为您希望用户从控制台访问的桶或文件夹添加 s3:ListBucket 权限。
以下为用于访问 S3 桶的示例策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
}
]
}
该策略允许用户仅对 DOC-EXAMPLE-BUCKET 执行 s3:ListBucket、s3:PutObject 和 s3:GetObject 操作。
以下为授予对文件夹的访问权限的示例策略。该策略允许用户仅对 DOC-EXAMPLE-BUCKET 中的 ffolder2 执行 s3:ListBucket、s3:ListBucketVersions、s3:PutObject、s3:GetObject 和 s3:GetObjectVersion 操作。只有在桶具有版本控制并且您希望用户能够访问对象的先前版本时,才能使用 s3:ListBucketVersions、s3:GetObjectVersion 和 s3:GetBucketVersioning。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUsersToAccessFolder2Only",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/folder1/folder2/*"
]
},
{
"Sid": "AllowListOfBucketOnlyOnPrefix",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:ListBucketVersions"
],
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"folder1/folder2/*"
]
}
}
},
{
"Sid": "AllowListVersionOnObjectDetails",
"Effect": "Allow",
"Action": [
"s3:GetBucketVersioning"
],
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET"
]
}
]
}
7.向用户提供指向 S3 桶或文件夹的直接控制台链接。
警告: 更改这些权限后,用户在访问 Amazon S3 主控制台时会遇到“访问被拒绝”错误。用户必须使用直接控制台链接来访问桶或文件夹。
以下链接是指向 S3 桶的直接控制台链接的示例:
https://s3.console.aws.amazon.com/s3/buckets/DOC-EXAMPLE-BUCKET/
以下链接是指向文件夹的直接控制台链接的示例:
https://s3.console.aws.amazon.com/s3/buckets/DOC-EXAMPLE-BUCKET/folder1/folder2/
相关信息
用户策略示例