s3存储策略访问被拒绝

时间:2017-08-03 07:49:03

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

我正在尝试从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/*"]
    }
  ]
}

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

2 个答案:

答案 0 :(得分:1)

要做到这一点,您根本不必处理存储桶策略。存储桶策略用于允许服务访问您的S3数据库 - 而不是用户。

要允许用户访问您的S3数据库,请在权限/访问控制列表(这是"存储桶策略"旁边)中添加所需权限。

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

答案 1 :(得分:1)

我的不好,我没有正确地初始化AWS.S3并且它正在使用ec2实例的用户/角色而不是我分配的用户/角色。