s3 存储桶策略访问被拒绝

s3 Bucket Policies Access Denied

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

这是我的 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/*"]
    }
  ]
}

有人可以指出我在这里做错了什么吗?

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

要允许用户访问您的 S3 数据库,请将其添加到 Permissions/Access 控制列表(位于 "bucket policy" 旁边)下并具有所需的权限。

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

糟糕,我没有正确初始化 AWS.S3,它使用的是 ec2 实例的 users/roles,而不是我分配的实例。