为访问多个 s3 存储桶指定正确的 IAM 权限

Posted

技术标签:

【中文标题】为访问多个 s3 存储桶指定正确的 IAM 权限【英文标题】:Specifying the correct IAM permission for access to multiple s3 buckets 【发布时间】:2018-01-11 10:19:14 【问题描述】:

我正在尝试授予用户对某些存储桶的读/写/列出权限,而我的 IAM 政策是:


    "Version": "2012-10-17",
    "Statement": [
        
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::kl-bucket1",
                "arn:aws:s3:::kl-bucket2",
                "arn:aws:s3:::kl-bucket3",
                "arn:aws:s3:::kl-bucket4"
            ]
        ,
        
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::kl-bucket3",
                "arn:aws:s3:::kl-bucket4"
            ]
        
    ]

当我尝试写入 bucket4 时,我收到 403 错误,但是如果我像下面这样授予完全权限,那么我可以写入 bucket4。


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

可能是什么问题?

附:虽然这个问题与S3: How to grant access to multiple buckets? 类似,但实际问题不同。

【问题讨论】:

【参考方案1】:

问题是我还在 PutObject 之后设置了访问控制,而 IAM 策略正在设置该权限。@Asarluhi 的回答有帮助。 已将操作修改为:

"Action": [
            "s3:GetObject",
            "s3:PutObject",
            "s3:PutObjectAcl"
        ],

【讨论】:

以上是关于为访问多个 s3 存储桶指定正确的 IAM 权限的主要内容,如果未能解决你的问题,请参考以下文章

多个存储桶的 AWS IAM 策略

私有登台S3存储桶的策略

AWS-IAM:授予对单个存储桶的访问权限

创建单个 IAM 用户以仅访问特定的 S3 存储桶

S3 存储桶和对象访问

如何为多个 IAM 用户设置 S3 策略,以便每个人只能访问他们的个人存储桶文件夹?