web-dev-qa-db-ja.com

S3 CLIを使用したアクセス拒否ファイルのコピー

AWS CLIを使用してS3バケットのコンテンツをプルダウンしようとすると、次のようになります。

aws s3 cp --region us-east-1 s3://s3.amazonaws.com/my-bucket . --recursive
A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied
Completed 1 part(s) with ... file(s) remaining

aws s3 syncの使用も同様に失敗します。

ユーザーポリシーは次のとおりです。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": ["arn:aws:s3:::*"]
    }
  ]
}

(私はさまざまな制限の少ないポリシーも試しましたが、役に立ちませんでした)。

私は空のバケットポリシーとこのバケットポリシーも試しました:

{
    "Id": "Policy1357935677554",
    "Statement": [
        {
            "Sid": "Stmt1357935647218",
            "Action": [
                "*"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::my-bucket",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::XXXXXXXXXX:user/my-user"
                ]
            }
        },
        {
            "Sid": "Stmt1357935676138",
            "Action": [
                "*"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::my-bucket/*",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::XXXXXXXXXX:user/my-user"
                ]
            }
        }
    ]
}

興味深いことに、これはdoes機能します。

aws s3api list-objects --region us-east-1 --bucket my-bucket
6
KevinD

S3の場所を指定する形式はs3://bucket/key soの代わりにs3://s3.amazonaws.com/my-bucket使用しますs3://my-bucket/

5
jamesls