S3 オブジェクト所有権を使用して Amazon Simple Storage Service (Amazon S3) バケット内の他の AWS アカウントによってアップロードされたオブジェクトの所有権を変更しようとしています。これを行うにはどうすればよいですか?
簡単な説明
重要: S3 内のオブジェクトは、アップロードした AWS アカウントによって常に自動的に所有されるわけではなくなりました。
[S3 Object Ownership] (S3 オブジェクトの所有権) の [Bucket owner enforced] (バケット所有者の強制) 設定を使用して、Amazon S3 バケット内のすべてのオブジェクトをバケット所有者が所有できるようになりました。[Bucket owner enforced] (バケット所有者の強制) 機能では、すべてのアクセスコントロールリスト (ACL) もオフになるため、S3 に保存されているデータのアクセス管理が簡素化されます。
[Bucket owner enforced] (バケット所有者の強制) 設定をオンにすると、新しく作成されたバケット内のすべてのオブジェクトの所有権をバケット所有者アカウントに適用できます。
解決方法
他の AWS アカウントによってアップロードされたオブジェクトのオブジェクト所有権を変更する
注: S3 オブジェクト所有権を使用してバケットのオブジェクト所有権を変更する前に、s3:PutBucketOwnershipControls アクションにアクセスできることを確認してください。S3 の許可の詳細については、「Amazon S3 のアクション、リソース、条件キー」を参照してください。
Amazon S3 バケット内の他のアカウントによってアップロードされた新規および既存のオブジェクトのオブジェクト所有権をバケット所有者アカウントに変更する (ACL を無効にする)
既存の Amazon S3 バケット内のオブジェクトの所有権を変更しようとしている場合は、[S3 Object Ownership] (S3 オブジェクトの所有権) で [ACLs disabled] (ACL 無効) オプションを選択します。このオプションを使用すると、バケット所有者は S3 バケット内のすべてのオブジェクトを完全に制御でき、所有権をバケット所有者のアカウントに移行できます。
このオプションを使用すると、ACL は S3 バケット内のデータにアクセスするための許可に影響しなくなります。このオプションでは、現存するオブジェクトや [ACLs disabled] (ACL 無効) オプションの設定後に追加したオブジェクトを含む、バケット内のすべてのオブジェクトの所有権が変更されます。アクセスコントロールを定義するには、バケットポリシーを使用します。
注:既存の ACL で外部 AWS アカウントまたは他のグループへのアクセス権が付与されている場合、[バケット所有者] の設定は機能しません。[Bucket owner enforced] (バケット所有者の強制) 設定を適用するには、バケット ACL がバケット所有者のみにフルコントロールを付与する必要があります。[Bucket owner enforced] (バケット所有者の強制) 設定をオンにする前に、「ACL を無効にする前提条件」を参照してください。
Amazon S3 バケット内の他のアカウントによってアップロードされた新規のオブジェクトのオブジェクト所有権をバケット所有者アカウントに変更する (ACL を有効にする)
[S3 Object Ownership] (S3 オブジェクトの所有権) 設定で、ACL が有効になっているオプションのリストから、[Bucket owner preferred] (バケット所有者優先) オプションを選択します。この設定では、bucket-owner-full-control の既定 ACL を使用して他のアカウントによって書き込まれた新しいオブジェクトは、オブジェクトライターではなくバケット所有者によって自動的に所有されます。ただし、[Bucket owner preferred] (バケット所有者優先) 設定は既存のオブジェクトの所有権には影響しません。また、ACL を更新して許可を付与することもできます。[Bucket owner preferred] (バケット所有者優先) 設定と ACL の詳細については、「Enforcing ownership of Amazon S3 objects in a multi-account environment」(マルチアカウント環境で Amazon S3 オブジェクトの所有権を強制する) を参照してください。
オブジェクトの所有権をアップロードした AWS アカウントに変更する (ACL を有効にする)
オブジェクトをアップロードした AWS アカウントにオブジェクトの所有権を移行するには、[S3 Object Ownership] (S3 オブジェクトの所有権) でオンになっている ACL のリストから [Object writer] (オブジェクトライター) オプションをオンにします。このオプションでは、オブジェクトをアップロードした AWS アカウントがオブジェクトを所有するようにします。これにより、オブジェクト所有者はオブジェクトを完全に制御でき、ACL を使用して他のユーザにそのオブジェクトへのアクセス権を付与できます。
関連情報
オブジェクトの所有権を制御し、バケットの ACL を無効にする
ひとつの Amazon S3 バケットから別のバケットにすべてのオブジェクトをコピーするにはどうすればよいですか?
How can I add bucket-owner-full-control ACL to my objects in Amazon S3? (bucket-owner-full-control ACL を Amazon S3 内のオブジェクトに追加するにはどうすればよいですか?)