🤖

【備忘】AWS S3 CrossAccountRepliction クロスアカウントレプリケーション 設定手順書

2024/11/10に公開

所見

細か〜くレプリケーションルールを設定することができる。
どう設定するのか、レプリケーションする目的を明確にした上で設定すること。

例えば、
バッチ処理でレプリケーションするのか、
双方向でやるのか、
大量にレプリケーションする場合スコープをどう設定するのか

逆に、
目的が明確でないのであれば、本記事や参考文献1−3の一般的な設定でOK

参考文献(公式〜123だけ読めばOK)

公式 :他にどんなレプリケーション方法ができるかがわかる。

:細かい作成手順、削除方法、別リージョンで作成
:所有者の変更、暗号化
:手順の3行まとめの参照元
 ↑ざっくり概要を掴む

↓細かく設定する(レプリケーションルール)
:レプリケーションのバッチ化
:プレフィックスをつけて、レプリケーション対象を絞る
:レプリケーションルールの詳細設定 この設定項目→”追加のレプリケーションオプション

手順の3行まとめ

  • 送信元、送信先バケットとも、S3バージョニングを有効化する
  • 送信元のバケットレプリケーションルールを設定する
  • 送信元のバケットレプリケーション実行IAMロールに対して、送信先のバケットポリシーで権限設定をする

完成のイメージ

手順のポイント

<前提>
・送信元(Source)、送信先バケット(Destination)ともS3バージョニングを有効化すること

<補足>
・バケットのアカウント、リージョンは別のものでも設定可能
・送信元バケットでレプリケーションルールを設定
・送信元バケットにはレプリケーション実行IAMロールを付与、送信先バケットにはバケットポリシーにて権限設定
・削除設定について、デフォルトでは片方でオブジェクトを削除しても、もう片方に反映されない

手順詳細

1、アカウントA(JMS)でSourceバケットを作成

  • バケット名は一目で バケットの目的 所有者 SourceかDestinationか、対のバケットがわかるものが良い
  • バケットのバージョニングを必ず有効にすること
      ※既存バケットをバージョニング有効する場合はプロパティタブからEdit

2、アカウントBでDestinationバケットを作成

  • 同じく、バケット名は一目でバケットの目的、所有者、SourceかDestination、対のバケットがわかるものが良い

3、Sourceバケットにて、レプリケーションルールの設定

レプリケーションルールの設定
- ルール名
- そのルールを有効にするか
(各ルールはそのバケットに対して、スイッチ的に使える)

  • ソースバケット
    • レプリケーションするスコープを指定
      • バケット全て
      • 制限する(プレフィックス、オブジェクトタグ、または、そのどっちもでスコープを指定できる)
  • 送信先(Destination)
    • 送信先バケットの設定。
      →同アカ、または、別アカでのバケットを指定できる
    • ここで、オブジェクト所有者を送信先バケット所有者に変更することも可能
  • IAM ロール
    • SourceバケットにIAMロールを付与
    • Destinationバケットでバケットポリシーを編集
  • 暗号化
    • SSE-KMS および DSSE-KMSで暗号化できる
  • 追加のレプリケーションオプション
    • 4つ選べる
    • 細かく管理したい場合はこの設定が重要。
    • ここが詳しく書いてる20241110.png)

4、Destinationバケットでバケットポリシーを編集

これで設定完了。

5、確認してみる
Sourceバケットにオブジェクトを入れてみる

Destinationバケットでも同様のものが確認できた

6、補足

他にも、よく似たAWS S3 Batch Replicationなどあるので、使い分けて利用してみたい

Discussion