2

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

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

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

4

2 回答 2

1

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

于 2017-08-04T06:56:38.223 回答
1

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

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

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

于 2017-08-03T08:24:09.417 回答