AWS SDK または CLI で PutBucketReplication
を使用する
以下のコード例は、PutBucketReplication
の使用方法を示しています。
- CLI
-
- AWS CLI
-
S3 バケットのレプリケーションを設定するには
次の
put-bucket-replication
の例では、指定した S3 バケットにレプリケーション設定を適用します。aws s3api put-bucket-replication \ --bucket
AWSDOC-EXAMPLE-BUCKET1
\ --replication-configurationfile://replication.json
replication.json
の内容:{ "Role": "arn:aws:iam::123456789012:role/s3-replication-role", "Rules": [ { "Status": "Enabled", "Priority": 1, "DeleteMarkerReplication": { "Status": "Disabled" }, "Filter" : { "Prefix": ""}, "Destination": { "Bucket": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET2" } } ] }
レプリケーション先のバケットではバージョニングが有効になっている必要があります。指定したロールは、レプリケーション先のバケットへの書き込みアクセス許可を持ち、Amazon S3 がそのロールを引き受けることを許可する信頼関係が必要です。
ロールのアクセス許可ポリシーの例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET1" ] }, { "Effect": "Allow", "Action": [ "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET1/*" ] }, { "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET2/*" } ] }
信頼関係ポリシーの例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
このコマンドでは何も出力されません。
詳細については、「Amazon Simple Storage Service コンソールユーザーガイド」の「チュートリアル: レプリケーションの設定例」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「PutBucketReplication
」を参照してください。
-
- PowerShell
-
- Tools for PowerShell
-
例 1: この例では、バケット「examplebucket」内のキー名プレフィックス「TaxDocs」で作成された新しいオブジェクトの「exampletargetbucket」バケットへのレプリケーションを有効にする単一のルールを使用してレプリケーション設定を指定します。
$rule1 = New-Object Amazon.S3.Model.ReplicationRule $rule1.ID = "Rule-1" $rule1.Status = "Enabled" $rule1.Prefix = "TaxDocs" $rule1.Destination = @{ BucketArn = "arn:aws:s3:::exampletargetbucket" } $params = @{ BucketName = "examplebucket" Configuration_Role = "arn:aws:iam::35667example:role/CrossRegionReplicationRoleForS3" Configuration_Rule = $rule1 } Write-S3BucketReplication @params
例 2: この例では、バケット「examplebucket」内のキー名プレフィックス「TaxDocs」または「OtherDocs」で作成された新しいオブジェクトの「exampletargetbucket」バケットへのレプリケーションを有効にする複数のルールを使用してレプリケーション設定を指定します。キーのプレフィックスの重複は許可されません。
$rule1 = New-Object Amazon.S3.Model.ReplicationRule $rule1.ID = "Rule-1" $rule1.Status = "Enabled" $rule1.Prefix = "TaxDocs" $rule1.Destination = @{ BucketArn = "arn:aws:s3:::exampletargetbucket" } $rule2 = New-Object Amazon.S3.Model.ReplicationRule $rule2.ID = "Rule-2" $rule2.Status = "Enabled" $rule2.Prefix = "OtherDocs" $rule2.Destination = @{ BucketArn = "arn:aws:s3:::exampletargetbucket" } $params = @{ BucketName = "examplebucket" Configuration_Role = "arn:aws:iam::35667example:role/CrossRegionReplicationRoleForS3" Configuration_Rule = $rule1,$rule2 } Write-S3BucketReplication @params
例 3: この例では、指定したバケットのレプリケーション設定を更新して、キー名プレフィックス「TaxDocs」を持つオブジェクトのバケット「exampletargetbucket」へのレプリケーションを制御するルールを無効にします。
$rule1 = New-Object Amazon.S3.Model.ReplicationRule $rule1.ID = "Rule-1" $rule1.Status = "Disabled" $rule1.Prefix = "TaxDocs" $rule1.Destination = @{ BucketArn = "arn:aws:s3:::exampletargetbucket" } $params = @{ BucketName = "examplebucket" Configuration_Role = "arn:aws:iam::35667example:role/CrossRegionReplicationRoleForS3" Configuration_Rule = $rule1 } Write-S3BucketReplication @params
-
API の詳細については、「AWS Tools for PowerShell コマンドレットリファレンス」の「PutBucketReplication」を参照してください。
-
AWS SDK デベロッパーガイドとコード例の完全なリストについては、「このサービスを AWS SDK で使用する」を参照してください。このトピックには、使用開始方法に関する情報と、以前の SDK バージョンの詳細も含まれています。