AWS S3:更改策略后无法列出存储桶

Posted

技术标签:

【中文标题】AWS S3:更改策略后无法列出存储桶【英文标题】:AWS S3: can't list the bucket after change of policy 【发布时间】:2017-07-26 07:16:16 【问题描述】:

我们在 AWS S3 中创建了一个 Bucket 和一个具有特定策略的 IAM-User 来限制对该存储桶的访问,如下所示:

:测试桶

政策


    "Version": "2012-10-17",
    "Statement": [
        
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl"
            ],
            "Resource": [
                "arn:aws:s3:::testbucket/*",
            ]
        
    ]

然后我们创建了一个 IAM 用户并将此策略分配给用户的权限。我们得到了一个 Access-Key 和一个 Secret-Access-Key,并且可以成功地将文件上传到存储桶,并使用给定的已知 URL 下载它们。

现在我们还希望能够列出存储桶中的所有对象。 因此,我以这种方式更改了政策:

新政策:


    "Version": "2012-10-17",
    "Statement": [
        
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl"
            ],
            "Resource": [
                "arn:aws:s3:::testbucket/*",
            ]
        ,
        
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::testbucket/*"
            ]
        
    ]

这里的新项目是s3:ListBucket

我已成功更改此政策,并且可以在 AWS 上重新加载页面以确保这些更改仍然存在。

但是,我已经等了一个小时,但我仍然无法列出存储桶的对象。

为了进行测试,我使用了 Cyber​​Duck 应用程序。认证后可以列出bucket本身,但仍然不能列出bucket中的对象。

我需要做点别的吗?

【问题讨论】:

【参考方案1】:

s3:ListBucket 适用于存储桶,而不适用于其中的对象。因此,第二条语句不能有斜杠和通配符,因此应该是:


    "Effect": "Allow",
    "Action": [
        "s3:ListBucket"
    ],
    "Resource": [
        "arn:aws:s3:::testbucket"
    ]

【讨论】:

以上是关于AWS S3:更改策略后无法列出存储桶的主要内容,如果未能解决你的问题,请参考以下文章

AWS IAM 策略:如何更改 AWSLambdaFullAccess 策略以仅允许访问一个 S3 存储桶?

aws s3 存储桶策略

AWS S3 CLI - 如何使用存储桶上设置的所有当前策略获取 JSON?

AWS 存储桶策略错误:策略具有无效操作

[AWS][安全] S3存储桶策略-Bucket Policy

AWS S3 存储桶策略编辑器访问被拒绝