AWS

【AWS】S3バケットを別のアカウントにレプリケーションする方法

AWS
この記事は約4分で読めます。

はじめに

インプルの矢島です。

S3のログデータを管理アカウントに同期したい。別の環境を管理しているアカウントにバックアップをとりたい。というようにアカウントを跨いでバケットをレプリケーションをしたいと思いませんか?

そんな時に行う設定が、S3のクロスアカウントレプリケーションです!

今回はS3のクロスアカウントレプリケーションの設定方法をご紹介いたします。

S3レプリケーションとは

S3レプリケーションとは、S3バケットに新しいオブジェクトがアップロードされたら、自動的にレプリケーション先のバケットにコピーが生成される仕組みです。

同じリージョン内でも、他のリージョンでも、他のアカウントにもレプリケーション先のバケットに指定できます。

ほとんどのオブジェクトは15分以内にレプリケートされますが、場合によっては、数時間かかることもあります。RTCを活用すれば99.99%のオブジェクトを15分以内にレプリケートすることができます。

やること

  • レプリケート先のバケットを作成
  • レプリケート元のバケットを作成して、レプリケート設定
  • レプリケート先のバケットポリシーで、レプリケート元のIAMロールの実行権限を設定
  • 動作確認

レプリケート先のバケットを作成

バケットを作成します。(バケットのスペルが間違えてますがご容赦ください。。)

パブリックアクセスはブロックします。バージョニングは有効にしてください。
※バージョニングが有効でないとレプリケーションできないです。

ここまで作成が終わったらレプリケート先のアカウントID(12桁の数字)とバケット名を控えておきましょう。後ほど使います。

レプリケート元のバケットを作成して、レプリケート設定

レプリケート先と同様にバケットを作成していきます。(こちらもバケットのスペルが間違えています。。申し訳ございません)

バケットの管理からレプリケーションルールを作成します。

スコープはとりあえず全てのオブジェクトに適用します。

送信先で、先ほど控えたアカウントIDとバケット名を入力しましょう。

IAMロールは作成します。

追加のレプリケーションルールはなしにします。

作成完了したら、IAMロールが新しく生成されているはずなので、確認しましょう。

自動でs3_crr_role_for_send-buketというロールが作成されていますね。このARNを控えておきましょう。この後使います。

レプリケート先のバケットポリシーで、レプリケート元のIAMロールの実行権限を設定

S3のアクセス許可からバケットポリシーを設定します。

ポリシージェネレータとか使って設定するか、下記をコピーして設定してください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "<<レプリケート元のIAMロールARN>>"
            },
            "Action": [
                "s3:ReplicateDelete",
                "s3:ReplicateObject",
                "s3:ReplicateTags",
                "s3:ObjectOwnerOverrideToBucketOwner"
            ],
            "Resource": "arn:aws:s3:::<<レプリケート先バケット名>>/*"
        }
    ]
}

動作確認

設定できたら、send-buketにオブジェクトをアップロードしてみましょう。

recive-backetを確認してみましょう。無事test.pdfが届いていましたね!

以上です!ご覧いただきありがとうございました!

参考

  • https://dev.classmethod.jp/articles/try-s3-cross-account-replication/
  • https://dev.classmethod.jp/articles/s3-replication-best-practices/
  • https://developers.play.jp/entry/2023/03/31/191640#:~:text=Amazon%20S3%20Replication-,S3%E3%81%AE%E3%83%AC%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A8%E3%81%AF,%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82