考えられるほとんどすべてのバケットポリシーを試しました。また、ユーザーにポリシーを追加しようとしましたが、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/*"
]
}
]
}
次を使用して解決できます: 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