Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
オブジェクトロックを使用して Amazon S3 バケット間でクロスアカウントレプリケーションを設定する方法を教えてください。
オブジェクトロックが有効になっている Amazon Simple Storage Service (Amazon S3) バケットにクロスアカウントレプリケーションを設定したいと考えています。
解決策
宛先バケットで Object Lock を有効にする
Amazon S3 バケットにレプリケーションを設定するには、宛先バケットで Object Lock を有効にします。
注: S3 Object Lock を有効にした後に、バケットで Object Lock を無効化したり、バージョニングを一時停止したりすることはできません。
必要なアクセス許可を持つレプリケーション用の IAM ロールを作成する
ソースアカウントにおいて、IAM コンソールでレプリケーション用の AWS Identity and Access Management (IAM) ロールを作成し、Amazon S3 との信頼関係を付与します。
例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
IAM ロールに次の権限をアタッチします。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SourceBucketPermissions", "Effect": "Allow", "Action": [ "s3:GetObjectRetention", "s3:GetObjectVersionTagging", "s3:GetObjectVersionAcl", "s3:ListBucket", "s3:GetObjectVersionForReplication", "s3:GetObjectLegalHold", "s3:GetReplicationConfiguration" ], "Resource": [ "arn:aws:s3:::SourceBucketName/*", "arn:aws:s3:::SourceBucketName" ] }, { "Sid": "DestinationBucketPermissions", "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ObjectOwnerOverrideToBucketOwner", "s3:GetObjectVersionTagging", "s3:ReplicateTags", "s3:ReplicateDelete" ], "Resource": [ "arn:aws:s3:::DestBucketName/*" ] } ] }
AWS Key Management Service (AWS KMS) キーを使用する場合は、IAM ロールに次の権限もアタッチしてください。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SourceBucketPermissions", "Effect": "Allow", "Action": [ "s3:GetObjectRetention", "s3:GetObjectVersionTagging", "s3:GetObjectVersionAcl", "s3:ListBucket", "s3:GetObjectVersionForReplication", "s3:GetObjectLegalHold", "s3:GetReplicationConfiguration" ], "Resource": [ "arn:aws:s3:::SourceBucketName/*", "arn:aws:s3:::SourceBucketName" ] }, { "Sid": "DestinationBucketPermissions", "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ObjectOwnerOverrideToBucketOwner", "s3:GetObjectVersionTagging", "s3:ReplicateTags", "s3:ReplicateDelete" ], "Resource": [ "arn:aws:s3:::DestBucketName/*" ] }, { "Sid": "SourceBucketKMSKey", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Resource": "SourceBucketKMSKeyARN" }, { "Sid": "DestinationBucketKMSKey", "Action": [ "kms:Encrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Resource": "DestinationBucketKMSKeyARN" } ] }
AWS KMS キーのアクセス許可を更新する
宛先アカウントの AWS KMS キーを設定し、ソースアカウント内の複製した IAM ロールへのアクセスを許可します。SSE-S3 暗号化は使用できますが、クロスアカウントレプリケーションでは、マネージド AWS KMS キー aws/S3 を使用できません。詳細については、「暗号化オブジェクトのレプリケーション (SSE-S3、SSE-KMS、DSSE-KMS、SSE-C)」を参照してください。
例:
{ "Sid": "AllowS3ReplicationSourceRoleToUseTheKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789101:role/s3-replication-role" }, "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "*" }
注: キーポリシーの Resource にワイルドカード (*) を使用した場合、そのポリシーは、レプリケートした IAM ロールにのみ AWS KMS キーへのアクセスを付与します。このポリシーでは、レプリケートしたロールのアクセス許可を昇格することはできません。
次のバケットポリシーを宛先アカウントに追加する
作成したレプリケーション IAM ロールの Amazon リソースネーム (ARN) を Principal セクションに追加します。
例:
{ "Version": "2012-10-17", "Id": "PolicyForDestinationBucket", "Statement": [ { "Sid": "ReplicationPermissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:ReplicateDelete", "s3:ReplicateObject", "s3:ObjectOwnerOverrideToBucketOwner", "s3:GetBucketVersioning", "s3:PutBucketVersioning" ], "Resource": [ "arn:aws:s3:::DestBucketName/*", "arn:aws:s3:::DestBucketName" ] } ] }
S3 バケットの IAM ロールをレプリケートする
次の手順を実行します。
- Amazon S3 コンソールを開きます。
- [バケット] を選択してから、ソースバケットを選択します。
- [管理] タブを選択します。
- [レプリケーションルール] で [レプリケーションルールを作成] を選択します。
- ルールの名前を入力します。
- [ソースバケット] でルールの範囲を選択し、レプリケーションを特定のオブジェクトプレフィックスに適用するか、バケットの内容全体に適用するかを決定します。
- [宛先] セクションで [他のアカウントのバケットを指定] を選択し、宛先バケットおよびアカウント ID を入力します
- [IAM ロール] で [既存の IAM ロールから選択] を選択します。
- [新しいロールを作成] を選択します。
または、
既存のレプリケーションルールがある場合は、IAM ロールの ARN を入力して作成済みのロールを使用します。 - AWS KMS で暗号化オブジェクトをレプリケートする方法を次に示します。
[暗号化] で [AWS Key Management Service (AWS KMS) で暗号化されたオブジェクトを複製する] を選択します。
AWS KMS キーの ARN を入力します。 - (オプション) [宛先のストレージクラス] と [追加のレプリケーションオプション] を設定します。
- 設定を確認した後、[保存] を選択します。
- (オプション) 1 回限りの Amazon S3 バッチ操作ジョブを使用して既存のオブジェクトを複製します。
IAM ロールがアカウント間で複製されたことを確認する
レプリケーションルールをテストするには、ソースバケットに新しいオブジェクトを追加し、宛先バケットでレプリケートされたオブジェクトの有無を確認します。
関連情報
関連するコンテンツ
- 質問済み 1年前
