仅允许从 S3 存储桶的特定文件夹中删除的 IAM 策略

Posted

技术标签:

【中文标题】仅允许从 S3 存储桶的特定文件夹中删除的 IAM 策略【英文标题】:IAM Policy to allow deletion only from specific folders of a S3 bucket 【发布时间】:2020-11-05 17:29:48 【问题描述】:

我有一个桶:s3://mybucket

我只想允许删除s3://mybucket/test下的对象

我尝试了以下策略:


    "Version": "2012-10-17",
    "Statement": [
        
            "Sid": "Stmt1604573937792",
            "Action": [
                "s3:DeleteObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::mybucket/",
                "arn:aws:s3:::mybucket/*"
            ],
            "Condition": 
                "StringLike": 
                    "s3:prefix": "test/*"
                
            
        
    ]

但是,尝试删除对象 arn:aws:s3:::mybucket/test/x.txt 的 IAM 策略模拟器未能显示“隐式拒绝(无匹配语句)”。我应该改变什么?

【问题讨论】:

【参考方案1】:

如果您查看Actions, resources, and condition keys for Amazon S3 - AWS Identity and Access Management,您会注意到DeleteObject 不接受Prefix

相反,您可以使用:


    "Version": "2012-10-17",
    "Statement": [
        
            "Effect": "Allow",
            "Action": "s3:DeleteObject",
            "Resource": "arn:aws:s3:::mybucket/text/*"
        
    ]

【讨论】:

以上是关于仅允许从 S3 存储桶的特定文件夹中删除的 IAM 策略的主要内容,如果未能解决你的问题,请参考以下文章

私有登台S3存储桶的策略

S3 存储桶的 IAM 组策略:拒绝文件夹但不拒绝文件

AWS S3仅允许来自存储桶的映像显示在特定IP地址上

如何将 S3 存储桶锁定到特定用户和 IAM 角色

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

拒绝除一个之外的所有存储桶的 AWS IAM 策略