Amazon Simple Storage Service (Amazon S3) オブジェクトを別の AWS アカウントのバケットにコピーしたいのですが、コピー先アカウントが、コピーされたオブジェクトを確実に含むようにしたいと考えています。その方法を教えてください。

以下のステップに従って、コピー先のアカウントが、コピー元バケットからコピー先バケットにオブジェクトをコピーできるようにします。

コピー元バケットにポリシーをアタッチする

1.    コピー先アカウントの AWS アカウント ID 番号を取得します。

2.    次のようにして、コピー元アカウントから、コピー先アカウントがオブジェクトを取得できるようにするポリシーをコピー元バケットにアタッチします。
重要: [プリンシパル] の値には、コピー先アカウントの AWS アカウント ID 番号を入力します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DelegateS3Access",
            "Effect": "Allow",
            "Principal": {"AWS": "222222222222"},
            "Action": ["s3:ListBucket","s3:GetObject"],
            "Resource": [
                "arn:aws:s3:::sourcebucket/*",
                "arn:aws:s3:::sourcebucket"
            ]
        }
    ]
}

コピー先アカウントのユーザーまたはグループにポリシーをアタッチする

ユーザーがコピー元バケットからコピー先バケットにオブジェクトをコピーできるようにするポリシーを、コピー先アカウントの IAM ユーザーまたはグループにアタッチします。このポリシーは次の例のようになります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::sourcebucket",
                "arn:aws:s3:::sourcebucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::destinationbucket",
                "arn:aws:s3:::destinationbucket/*"
            ]
        }
    ]
}

コピー元バケットからコピー先バケットにオブジェクトをコピーする

コピー元バケットとコピー先バケットアカウントでポリシーをセットアップすると、コピー先アカウントはコピー元バケットからコピー先バケットにオブジェクトをコピーできます。次に、コピー先アカウントが、コピー先バケットにコピーされたオブジェクトを所有します。

コピー元バケットからコピー先バケットにすべてのコンテンツを同期するには、次のコマンドを実行できます。

aws s3 sync s3://sourcebucket s3://destinationbucket

このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2018 年 11 月 16 日