レプリカ所有者の変更 - Amazon Simple Storage Service

レプリカ所有者の変更

レプリケーションでは、デフォルトで、レプリケート元オブジェクトの所有者もレプリカを所有しています。レプリケート元とレプリケート先のバケットが異なる AWS アカウント によって所有され、レプリケート先バケットを所有する AWS アカウント にレプリカの所有権を変更したい場合、オプション構成設定を追加して、レプリカの所有権を送付先バケットを所有する AWS アカウント に変更することができます。たとえば、オブジェクトのレプリカへのアクセスを制限するために、これを行うことがあります。これは、レプリケーション設定の所有者オーバーライドオプションと呼ばれます。所有者上書きオプションの詳細については、「レプリケーション設定への所有者オーバーライドオプションの追加」を参照してください。レプリケーション設定の構成については、「オブジェクトのレプリケーション」を参照してください。

所有者オーバーライドを設定するには、以下を実行します。

  • レプリカの所有権を変更するよう Amazon S3 に指示するには、レプリケーション設定に所有者オーバーライドオプションを追加します。

  • レプリカの所有権を変更するアクセス許可を Amazon S3 に付与します。

  • レプリケート先バケットポリシーにアクセス許可を追加して、レプリカの所有権を変更できるようにします。これにより、レプリケート先バケットの所有者がオブジェクトレプリカの所有権を受け入れることができるようになります。

詳細については、「レプリケーション設定への所有者オーバーライドオプションの追加」を参照してください。ステップバイステップの手順を含む実例については、「ソースとレプリケート元とレプリケート先のバケットが異なるアカウントによって所有されている場合のレプリカの所有者の変更」を参照してください。

オブジェクトの所有権のためのバケット所有者の強制設定

Simple Storage Service (Amazon S3) レプリケーションを使用し、レプリケート元バケットとレプリケート先バケットが異なった AWS アカウント によって所有される場合、バケットを使用する場合、レプリケート先バケットのバケット所有者は ACL を無効にして (「オブジェクト所有権」に対するバケット所有者の強制設定)、レプリカの所有権を送信先バケットを所有する AWS アカウント に変更することができます。この設定は、s3:ObjectOwnerOverrideToBucketOwner の許可の必要なく、既存の所有者のオーバーライドの動作を模倣します。つまり、バケット所有者の強制設定を使用してレプリケート先バケットにレプリケートされるすべてのオブジェクトは、レプリケート先バケット所有者によって所有されることを意味しています。オブジェクト所有権については、オブジェクトの所有権の制御とバケットの ACL の無効化。 を参照してください。

レプリケーション設定への所有者オーバーライドオプションの追加

警告

所有者オーバーライドオプションを追加するのは、レプリケーション元バケットとレプリケーション先バケットが異なる AWS アカウントによって所有されている場合のみです。Amazon S3 はバケットが同じアカウントによって所有されているか、異なるアカウントによって所有されているかをチェックしません。両方のバケットが同じ AWS アカウントによって所有されている場合に所有者オーバーライドを追加すると、Amazon S3 は所有者オーバーライドを適用します。レプリケート先バケットの所有者にフルアクセス権が付与され、その後の更新はソースオブジェクトアクセスコントロールリスト (ACL) にレプリケートされません。レプリカの所有者は、PUT ACL リクエストを持つレプリカに関連付けられた ACL を直接変更できますが、レプリケーションを通して変更することはできません。

所有者の上書きオプションを指定するには、各Destination要素に次を追加します。

  • Amazon S3 にレプリカの所有権を変更するよう指示する AccessControlTranslation 要素

  • レプリケート先バケット所有者の AWS アカウントを指定する Account 要素

<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> ... <Destination> ... <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> <Account>destination-bucket-owner-account-id</Account> </Destination> </Rule> </ReplicationConfiguration>

次のレプリケーション設定例では、Tax キープレフィックスを持つオブジェクトをレプリケート先バケットにレプリケートし、レプリカの所有権を変更するようAmazon S3 に指示します。

<?xml version="1.0" encoding="UTF-8"?> <ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Role>arn:aws:iam::account-id:role/role-name</Role> <Rule> <ID>Rule-1</ID> <Priority>1</Priority> <Status>Enabled</Status> <DeleteMarkerReplication> <Status>Disabled</Status> </DeleteMarkerReplication> <Filter> <Prefix>Tax</Prefix> </Filter> <Destination> <Bucket>arn:aws:s3:::destination-bucket</Bucket> <Account>destination-bucket-owner-account-id</Account> <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> </Destination> </Rule> </ReplicationConfiguration>

レプリカの所有権を変更するための Amazon S3 アクセス許可の付与

IAM ロールに関連付けられているアクセス許可ポリシーに s3:ObjectOwnerOverrideToBucketOwner アクションのアクセス許可を追加することで、Amazon S3 にレプリカの所有権を変更するアクセス許可を付与します。これは、Amazon S3 がユーザーに代わってオブジェクトを引き受けてレプリケートすることを可能にする、レプリケーション設定で指定した IAM ロールです。

... { "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::destination-bucket/*" } ...

レプリケート先バケットポリシーへのレプリカの所有権を変更するアクセス許可の追加

レプリケート先バケットの所有者は、レプリケート元バケットの所有者に、レプリカの所有権を変更するためのアクセス権限を付与する必要があります。レプリケート先バケットの所有者は、レプリケート元バケットの所有者に、s3:ObjectOwnerOverrideToBucketOwner アクションのためのアクセス権限を付与します。これにより、宛先バケット所有者はオブジェクトレプリカの所有権を受け入れることができるようになります。次のバケットポリシーステートメントの例は、この操作を行う方法を示しています。

... { "Sid":"1", "Effect":"Allow", "Principal":{"AWS":"source-bucket-account-id"}, "Action":["s3:ObjectOwnerOverrideToBucketOwner"], "Resource":"arn:aws:s3:::destination-bucket/*" } ...

追加の考慮事項

所有権オーバーライドオプションを設定するときは、次の考慮事項が適用されます。

  • デフォルトでは、レプリケート元オブジェクトの所有者がレプリカの所有者となります。Amazon S3 は、オブジェクトバージョンとそれに関連付けられた ACL をレプリケートします。

    所有者オーバーライドを追加すると、Amazon S3 はオブジェクトのバージョンのみをレプリケートし、ACL はレプリケートしません。さらに、Amazon S3 は、以降の変更をレプリケート元オブジェクト ACL にレプリケートしません。Amazon S3 は、完全な制御をレプリケート先バケット所有者に許可する ACL をレプリカに設定します。

  • 所有者オーバーライドを有効、または無効にするようにレプリケーション設定を更新すると、以下の処理が行われます。

     

    • レプリケーション設定へ所有者オーバーライドオプションを追加する場合。

      Amazon S3 がオブジェクトバージョンをレプリケートすると、レプリケート元オブジェクトに関連付けられている ACL は破棄されます。代わりに、ACL は完全なコントロールをレプリケート先バケットの所有者に与えるレプリカに設定されます。レプリケート元オブジェクト ACL へのそれ以降の変更はレプリケートされません。ただし、この ACL 変更は、所有者オーバーライドオプションを設定する前にレプリケートされたオブジェクトバージョンには適用されません。所有者オーバーライドが設定される前にレプリケートされたレプリケート元オブジェクトの ACL 更新は、レプリケートされ続けます (オブジェクトとそのレプリカの所有者が引き続き同じであるため)。

    • レプリケーション設定から所有者オーバーライドオプションを削除する場合。

      Amazon S3 は、レプリケート元バケットと関連 ACL に表示される新しいオブジェクトを、レプリケート先バケットにレプリケートします。所有者オーバーライドを削除する前にレプリケートされたオブジェクトの場合、Amazon S3 によるオブジェクト所有権の変更が有効なため、Amazon S3 は ACL をレプリケートしません。つまり、所有者オーバーライド設定時にレプリケートされたオブジェクトバージョンに設定された ACL は、引き続きレプリケートされません。