Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services s3存储桶策略访问被拒绝_Amazon Web Services_Amazon S3_Aws Sdk_Amazon Policy - Fatal编程技术网

Amazon web services s3存储桶策略访问被拒绝

Amazon web services s3存储桶策略访问被拒绝,amazon-web-services,amazon-s3,aws-sdk,amazon-policy,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 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/*"]
    }
  ]
}

有人能指出我做错了什么吗?

要做到这一点,你根本不需要处理桶策略。Bucket策略用于允许服务访问S3数据库,而不是用户

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


如果绝对必须通过bucket策略完成,则此链接将涵盖所有内容:

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

我使用的是
private
ACL,在JS中,我只需在
aws.config.update({})
中添加所创建用户的密钥/密码。如果我执行
原则:{AWS:}
的话,这一切都会起作用,因为它为所有用户提供了权限。哦,在这种情况下,这个链接应该涵盖所有内容: