【问题标题】:Not able to list particular bucket from IAM user account无法从 IAM 用户帐户中列出特定存储桶
【发布时间】:2022-02-05 14:19:43
【问题描述】:

这是我为 s3bucket 编写的代码

我无法在 AWS 控制台中列出/查看来自 IAM 用户 sseth1 S3 仪表板的存储桶 sseth-learning-account1,尽管通过存储桶策略成功保存而没有给我任何错误。如何授予 IAM 用户仅列出/查看其任务所需的单个存储桶的权限?

    {
    "Version": "2012-10-17",
    "Id": "Policy1644033771978",
    "Statement": [
        {
            "Sid": "Stmt1644033769613",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::196172918120:user/sseth1"
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:GetObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::sseth-learning-account1",
                "arn:aws:s3:::sseth-learning-account1/*"
            ]
        }
    ]
}

【问题讨论】:

  • 你在尝试什么命令,错误信息是什么?
  • 我已经在我的存储桶中配置了上述策略,以允许 IAM 用户列出特定的存储桶并在该存储桶上执行一些任务,但是当我尝试从 IAM 用户控制台列出存储桶时,它给了我错误 -您无权列出存储分区。 ** 但是,如果我从策略中删除 ListBucket 操作,而是将其作为角色分组并将用户添加到该角色,我可以列出存储桶并执行存储桶策略中定义的所有操作,但如何仅从存储桶中实现相同的操作政策?
  • 您是说您希望该用户能够访问 S3 管理控制台中的 Amazon S3 存储桶,但您不希望他们看到该 AWS 账户中其他 S3 存储桶的列表?
  • @JohnRotenstein 是的
  • @JohnRotenstein 也来自上述策略,如果我忽略控制台视图的 ListBucket 部分,那么我可以通过 cli 执行所有操作

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


【解决方案1】:

您似乎想为 Amazon S3 授予特定用户权限。

推荐的方法是向 IAM 用户添加策略(而不是使用存储桶策略)。

这将与您创建的策略相同,但没有 Principal,因为拥有该策略的 IAM 用户暗示了这一点。

(这不一定是您的问题的原因,但您没有提供足够的信息来诊断您的具体问题。我只是在解释实现目标的另一种方法。)

【讨论】:

  • 所以我可以通过执行以下操作来实现这一点:-1)创建者组并允许该组 ListAllMyBucket 仅通过策略访问 2)将我的用户添加到该组 3)从存储桶策略中删除 ListBucket 操作4)我可以通过组列出存储桶并通过存储桶策略执行操作这是正确的方式和您指导的方式相同吗?
【解决方案2】:

您的目标似乎是允许特定用户通过 S3 管理控制台访问 Amazon S3 存储桶而不允许他们查看其他存储桶的列表

这是不可能的。

但是,你可以“作弊”...

您(拥有完全权限)应前往 S3 管理控制台中的存储桶并访问所需的存储桶。然后,从浏览器复制 URL 并将此 URL 提供给其他用户。然后,他们可以使用该 URL 在 S3 管理控制台中直接访问该存储桶,而无需通过存储桶列表。这样,他们将能够在控制台中查看和使用该特定存储桶

【讨论】:

  • 谢谢你让我明白
猜你喜欢
  • 2022-01-10
  • 1970-01-01
  • 2021-08-04
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多