web-dev-qa-db-ja.com

バケットやユーザーポリシーがあっても、AWSs3バケットでアクセスが拒否されました

考えられるほとんどすべてのバケットポリシーを試しました。また、ユーザーにポリシーを追加しようとしましたが、AWSコンソールを使用してs3バケットからオブジェクトをダウンロードしようとするたびにアクセスが拒否されます。

バケットポリシー:

{
    "Version": "2012-10-17",
    "Id": "MyPolicy",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::12345678901011:user/my-username"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::my-bucket",
                "arn:aws:s3:::my-bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::my-bucket/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "XX.XXX.XXX.XXX/24",
                        "XXX.XXX.XXX.XXX/24"
                    ]
                }
            }
        }
    ]
}

それはうまくいかないので、my-username:にポリシーを追加してみました

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "StmtXXXXXXXXXX",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket",
                "arn:aws:s3:::my-bucket/*"
            ]
        }
    ]
}
4
scottndecker

次を使用して解決できます: http://docs.aws.Amazon.com/cli/latest/reference/s3api/put-object-acl.html

put-object-acl:これは元のアップローダーが行う必要があります。

しかし、データを再度コピーするよりも間違いなく高速です。

処理するTBのデータがありました。

aws s3api put-bucket-acl --bucket $foldername --key $i --grant-full-control uri=http://acs.amazonaws.com/groups/global/AllUsers
1
Palak Sukant