【问题标题】:Why bucket policy does not provide IAM user to list s3 buckets even bucket policy is set for the user?为什么存储桶策略不提供 IAM 用户列出 s3 存储桶,即使为用户设置了存储桶策略?
【发布时间】:2021-08-04 17:08:47
【问题描述】:

我已经从管理员帐户创建了存储桶 poc-work,并且在此策略下我设置了如下策略:

{
    "Version": "2012-10-17",
    "Id": "Policy1620674317608",
    "Statement": [
        {
            "Sid": "Stmt1321974214233",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::accound-id:user/iam-user"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::poc-work",
                "arn:aws:s3:::poc-work/*"
            ]
        }
    ]
}

我没有将 s3readonly 之类的任何 aws 托管策略附加到 IAM 用户,但我假设设置存储桶策略应该使存储桶对 IAM 用户可见。但是当 IAM 用户登录并检查 s3 服务时,会出现错误消息: 您无权列出存储分区

我有以下疑问:

  1. 我不能创建启用列表 s3 存储桶的存储桶策略吗?
  2. 是否需要在 IAM 控制台上附加已定义的浏览策略,然后使用存储桶策略进行其余操作控制?

【问题讨论】:

  • 您可以尝试使用 CLI 运行 aws s3 ls poc-work 吗?似乎存储桶策略允许您查看存储桶,但不能列出您帐户中的所有存储桶
  • 要授予特定 IAM 用户对 S3 资源的访问权限,您通常会将 S3 权限添加到 IAM 策略并将该策略附加到 IAM 用户,而不是将 IAM 用户配置为通过 S3 存储桶获得权限政策。

标签: amazon-web-services amazon-s3 amazon-iam


【解决方案1】:

您授予用户一个存储桶的权限,但如果用户通过控制台,则用户需要ListAllBuckets 权限才能查看帐户中存在的所有存储桶。因此,您还需要为 IAM 用户添加权限,而不仅仅是一个存储桶。

另见:

第一个链接说:

ListAllMyBuckets 是通过 AWS 控制台。如果您打算将控制台用于 S3,这是必须的 行政。如果你没有这个权限,你基本上不会 在 S3 控制台中查看任何存储桶,无论其他 您已配置的权限,因此无法执行任何操作 在他们身上。

【讨论】:

  • 这是正确的,另外说明 s3:ListAllMyBuckets 需要应用于“根”资源 ("arn:aws:s3:::*")。将该权限添加到存储桶策略中并不好。
猜你喜欢
  • 2021-01-19
  • 2023-03-29
  • 2023-03-31
  • 2019-02-26
  • 2012-11-23
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多