【问题标题】:Allow IAM user to access single s3 bucket允许 IAM 用户访问单个 s3 存储桶
【发布时间】:2023-04-05 09:13:02
【问题描述】:

我正在使用内联策略为 IAM 用户授予对 s3 存储桶的访问权限

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1513073615000",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::newput-test"
            ]
        }
    ]
}

但是在扩展的 s3 浏览器上,当我使用特定 IAM 用户的访问密钥 ID 和秘密访问密钥时没有列出我的存储桶。但是当我在资源中传递 * 时它工作正常

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1513073615000",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

但问题在于它将所有 s3 存储桶的访问权限授予 IAM 用户。 但我想只授予单个存储桶的访问权限,任何人都知道如何实现这一点。

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    试试这样的

      {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "s3:ListAllMyBuckets",
                "Resource": "arn:aws:s3:::*"
            },
            {
                "Effect": "Allow",
                "Action": "s3:*",
                "Resource": [
                    "arn:aws:s3:::mys3bucket",
                    "arn:aws:s3:::mys3bucket/*"
                ]
            }
        ]
    }
    

    这里已经解释过了。 http://www.fizerkhan.com/blog/posts/Restrict-user-access-to-Single-S3-Bucket-using-Amazon-IAM.html

    【讨论】:

    • 它不工作给我以下错误 此策略包含以下错误:已禁止字段 Principal 有关 IAM 策略语法的更多信息,请参阅 AWS IAM 策略。
    • 我认为这可能会对您有所帮助。 fizerkhan.com/blog/posts/…
    • 我已经更新了答案,这可能对其他正在寻找类似问题的人有所帮助。
    • 好的,谢谢sanath,重点是要记住我们需要列出所有的桶,这是必需的,我们正在授予单个桶的权限,列出所有是必需的,我们无法做到这一点没有列出所有。
    • @shubhamkatariya 这是不正确的。您可以在不列出权限的情况下授予存储桶权限,有时这是正确的做法。但是有些客户不喜欢这样并以错误响应。大多数成熟的客户端都会允许您使用此权限,但您需要直接提供存储桶名称。
    猜你喜欢
    • 2016-03-12
    • 2011-04-27
    • 2022-01-23
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2021-06-28
    • 2022-01-10
    相关资源
    最近更新 更多