AWS CLI 仅列出授权存储桶

问题描述 投票:0回答:1

我的账户中有 3 个桶 A、B、C。我创建了一个限制 IAM 用户访问特定存储桶的策略。政策如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::A"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::A/*"
        }
    ]
}

将此策略应用于 IAM 用户后,我尝试使用带有凭据的

aws s3 ls
命令。

# list buckets
➜ aws s3 ls
2020-06-20 03:54:56 A
2020-06-20 03:54:56 B
2020-06-20 03:54:56 C

➜ aws s3 ls s3://A
  PER sub-foler/

➜ aws s3 ls s3://B
An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied

看起来成功限制了A以外的Bucket的用户访问。但是用户仍然可以看到B、C等其他Bucket的存在。

是否可以限制用户仅列出授权给它的存储桶(即A)?

amazon-web-services amazon-s3 amazon-iam aws-cli
1个回答
4
投票

2024 年更新: Amazon S3 为 ListBuckets API 添加了新的区域和存储桶名称过滤 - AWS


s3:ListAllMyBuckets
权限授予在 AWS 账户中列出存储桶的能力。

所有桶都将被退回。无法限制返回哪些存储桶。

如果您不希望用户看到其他存储桶的列表,请不要授予他们列出存储桶名称的能力。

© www.soinside.com 2019 - 2024. All rights reserved.