【问题标题】:s3 Bucket Policies Access Denieds3 存储桶策略访问被拒绝
【发布时间】:2018-01-10 16:37:44
【问题描述】:

我正在尝试从 aws-sdk-js 上传 s3 上的对象,但无法为我的案例制定策略。我想只允许一个用户拥有上传权限和公共读取权限。

这是我的 s3 存储桶策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::some-bucket/*"
        },
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::1111111111111:user/some-bucket-user"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::some-bucket/*"
        }
    ]
}

我的 IAM 政策是:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Action":"s3:*",
      "Resource":["arn:aws:s3:::some-bucket/*"]
    }
  ]
}

谁能指出我在这里做错了什么?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-sdk amazon-policy


    【解决方案1】:

    我的错,我没有正确初始化 AWS.S3,它使用的是 ec2 实例的用户/角色,而不是我分配的那个。

    【讨论】:

      【解决方案2】:

      为此,您根本不必处理存储桶策略。存储桶策略用于允许服务访问您的 S3 数据库 - 而不是用户。

      要允许用户访问您的 S3 数据库,请将其添加到具有所需权限的权限/访问控制列表(位于“存储桶策略”旁边)下。

      如果绝对必须通过存储桶策略完成,此链接将涵盖所有内容:http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-bucket-user-policy-specifying-principal-intro.html

      【讨论】:

      • 我正在使用 private ACL,在 JS 中我只需在 aws.config.update({}) 中添加创建用户的密钥/秘密。如果我做Principle: {AWS: *},这整个事情都会奏效,因为它会授予所有用户权限。
      • 哦,在这种情况下,这个链接应该涵盖所有内容:docs.aws.amazon.com/AmazonS3/latest/dev/…
      猜你喜欢
      • 2019-04-20
      • 2019-04-28
      • 2021-03-28
      • 2020-01-16
      • 2021-09-03
      • 2019-02-03
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多