矢島隆造AWSアドベントカレンダー2023【AWS】S3バケットを別のアカウントにレプリケーションする方法AWS2023.12.05この記事は約4分で読めます。はじめにインプルの矢島です。S3のログデータを管理アカウントに同期したい。別の環境を管理しているアカウントにバックアップをとりたい。いうようにアカウントを跨いでバケットをレプリケーションをしたいと思いませんか?そんな時に行う設定が、S3のクロスアカウントレプリケーションです!今回はS3のクロスアカウントレプリケーションの設定方法をご紹介いたします。S3レプリケーションとはS3レプリケーションとは、S3バケットに新しいオブジェクトがアップロードされたら、自動的にレプリケーション先のバケットにコピーが生成される仕組みです。同じリージョン内でも、他のリージョンでも、他のアカウントにもレプリケーション先のバケットに指定できます。ほとんどのオブジェクトは15分以内にレプリケートされますが、場合によっては、数時間かかることもあります。RTCを活用すれば99.99%のオブジェクトを15分以内にレプリケートすることができます。動作確認レプリケート先のバケットを作成バケットを作成します。(バケットのスペルが間違えてますがご容赦ください。)パブリックアクセスはブロックします。バージョニングは有効にしてください。※バージョニングが有効でないとレプリケーションできないです。ここまで作成が終わったらレプリケート先のアカウントID(12桁の数字)とバケット名を控えておきましょう。レプリケート元のバケットを作成して、レプリケート設定レプリケート先と同様にバケットを作成していきます。(こちらもバケットのスペルが間違えています。申し訳ございません)バケットの管理からレプリケーションルールを作成します。スコープはとりあえず全てのオブジェクトに適用します。送信先で、先ほど控えたアカウントIDとバケット名を入力しましょう。IAMロールは作成します。追加のレプリケーションルールはなしにします。作成完了したら、IAMロールが新しく生成されているはずなので、確認しましょう。自動でs3_crr_role_for_send-buketというロールが作成されていますね。このARNを控えておきましょう。レプリケート先のバケットポリシーで、レプリケート元のIAMロールの実行権限を設定S3のアクセス許可からバケットポリシーを設定します。ポリシージェネレータとか使って設定するか、下記をコピーして設定してください。設定できたら、send-buketにオブジェクトをアップロードしてみましょう。recive-backetを確認してみましょう。