【问题标题】:Why doesn't this S3 bucket policy allow my IAM user to put objects?为什么此 S3 存储桶策略不允许我的 IAM 用户放置对象?
【发布时间】:2017-06-29 00:17:55
【问题描述】:

这是存储桶策略:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "statement1",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::xxxxxxxxxxxx:user/userName"
        },
        "Action":  "*",
        "Resource": "arn:aws:s3:::my-super-awesome-bucket-name-test/*"
    }
}

使用 AWS CLI 我可以列出存储桶的内容:

aws s3 ls s3://my-super-awesome-bucket-name-test

2017-06-28 19:50:42         97 testFile.csv

但是,我无法上传文件:

aws s3 cp csv_sum.js s3://my-super-awesome-bucket-name-test/

upload failed: ./csv_sum.js to s3://my-super-awesome-bucket-name-test/csv_sum.js An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

我还需要做些什么来授予我的 IAM 用户访问权限吗?我通过 aws configure 添加了所需的信息,还有其他需要的吗?

【问题讨论】:

  • aws s3 cp 命令可能还需要 Bucket 以及存储桶内容的权限。尝试添加"arn:aws:s3:::my-super-awesome-bucket-name-test" 的第二个资源(没有/*)。
  • 所以事实证明这一定是我的 AWS CLI 客户端引起的,我通过自制软件将它安装在我的 mac 上。从我的 Linux PC 上尝试相同的命令没有问题。吸取教训,坚持使用 Linux
  • 要在 Mac 上安装 AWS Command-Line Interface (CLI),只需使用 sudo pip install awscli。它在 Mac 上运行良好!

标签: amazon-web-services amazon-s3


【解决方案1】:

这并不能回答您的具体问题,但是...

如果您希望向特定 IAM 用户授予 Amazon S3 访问权限,最好将策略直接分配给 IAM 用户,而不是将它们作为特殊情况添加到 S3 存储桶中政策。

您可以类似地将权限分配给 IAM 组,然后分配给该组的任何用户都将继承权限。您甚至可以通过这种方式为多个 S3 存储桶分配权限,而不必修改多个存储桶策略。

【讨论】:

  • 这对我来说很有意义,贤者的建议!
猜你喜欢
  • 2013-10-25
  • 2021-08-04
  • 1970-01-01
  • 2016-03-17
  • 2012-07-20
  • 2019-02-26
  • 2023-03-29
  • 2015-08-20
  • 1970-01-01
相关资源
最近更新 更多