手順
- 送信元、送信先にバージョニングが有効になっているバケットを作成
- 送信元バケットにレプリケーションルールを作成
- 送信先バケットのポリシーを修正
送信元、送信先にバージョニングが有効になっているバケットを作成
まずは送信元、送信先にバージョニングが有効になっているバケットを作成する
バージョニングが有効になっていること
送信元バケットにレプリケーションルールを作成
- レプリケーションルール名を入力(任意)
- ルールスコープを選択
- バケット内すべてのオブジェクトか指定のプレフィックスを選択可能
- 送信先のアカウントIDとバケット名を入力
- IAMロールは新しいロールの作成を選択すると自動で作成してくれる
- 暗号化設定、その他設定は任意
送信先バケットのポリシーを修正
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<送信元アカウントID>:role/service-role/<送信元IAMロール>"
},
"Action": [
"s3:ReplicateDelete",
"s3:ReplicateObject",
"s3:ReplicateTags",
"s3:ObjectOwnerOverrideToBucketOwner"
],
"Resource": "arn:aws:s3:::<送信先バケット>/*"
}
]
}
上記ポリシーを送信先バケットポリシーに記載
以上で設定は完了。
確認
送信元バケットケットにオブジェクトを配置して、送信先バケットにレプリケーションされていることを確認する。
感想
クロスアカウントと聞くと難しく考えてしまうが、実際にやってみるととても簡単に出来ることが分かった。AWS側で自動でIAMロールを作成してくれることもありがたい。CFnで作成する場合もこれなら簡単にできそう。プレフィックスも指定できたり色々オプションもあるのでより詳しい内容も調べていきたい。