0
0

【AWS備忘】レプリケーションを使わずにS3バケットのアカウント間オブジェクト移行をする

Posted at

目的

レプリケーションを使わずにアカウント①のS3バケット内のオブジェクトをアカウント②のS3バケットにコピーする
アカウント①・・・移行元
アカウント②・・・移行先

手順

移行先S3バケットの設定

移行元のIAMユーザーからの書き込みを許可するバケットポリシーを作成する

[移行先S3バケット]>[アクセス許可]>[バケットポリシー]>[編集]>バケットポリシーを入力し**[保存]**をクリックする
※バケットポリシーは以下のコードを参照

image.png

{
    "Version": "2012-10-17",
    "Id": "test",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "【移行元のIAM UserのARN】"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "【移行先のS3のARN】/*",
                "【移行先のS3のARN】"
            ]
        }
    ]
}

移行元アカウントからの書き込みを許可するACLを設定する

[移行先S3バケット]>[アクセス許可]>[オブジェクト所有者]>**[編集]をクリックし、[オブジェクト所有者を編集]**画面を開く

**[ACL有効]にチェックし、[変更の保存]**をクリックして保存する
image.png

image.png

ACLの有効化が完了したので、[移行先S3バケット]>[アクセス許可]>[アクセスコントロールリスト(ACL)]>**[編集]をクリックし、[アクセスコントロールリスト (ACL) を編集]**画面を開く
**[被付与者]に移行元S3バケットのアカウントの正規IDを入力し、[リスト][書き込み]にチェックを入れ[変更の保存]**をクリックして保存する

   

移行元S3バケットの設定

移行元からオブジェクトを取得し、移行先にアップロードすることを許可するIAMポリシーを作成する
[IAM]>[ポリシー]>[ポリシーの生成]>ポリシーを入力し**[次へ]>ポリシー名を入力し[作成]**をクリックする
※ポリシーは以下のコードを参照

image.png
image.png

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::【移行元バケット名】",
                "arn:aws:s3:::【移行元バケット名】/*"
            ]
        },
        {
            "Sid": "Statement2",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::【移行先バケット名】",
                "arn:aws:s3:::【移行先バケット名】/*"
            ]
        }
    ]
}

作成したIAMポリシーを移行元のIAMユーザーにアタッチする
image.png

コピーの実施

移行元S3バケットを開き、コピーしたいオブジェクトにチェックを入れ、[アクション]>**[コピーする]をクリックし、[コピーする]**画面を開く
image.png

  
**[送信先]に移行先S3バケットを指定し、[指定されたオブジェクト]にコピーしたいオブジェクトがあることを確認したら[コピーする]**をクリックする
image.png

  
コピーが完了したことを確認する
image.png

移行先S3バケットを確認すると、オブジェクトがコピーされていることが確認できる

事後作業

上記の作業を行っただけだと、ACLの影響で移行先S3バケットでオブジェクトのダウンロードができないため、設定したバケットのACLを無効に戻すことでダウンロードや閲覧が可能になる
※コピーまで完了したので、上記の設定は全て元に戻してOK
image.png
image.png
image.png

おわりに

おわりです
  

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0