アクセスコントロールリスト (ACL) を置き換える
Amazon S3 バッチオペレーションを使用すると、Amazon S3 のオブジェクトに対して大規模なバッチオペレーションを実行できます。[アクセスコントロールリスト (ACL) を置き換える] オペレーションは、マニフェストにリストされているすべてのオブジェクトのアクセスコントロールリスト (ACL) を置き換えます。ACL を使用すると、オブジェクトにアクセスできる人物およびその人物が実行できるアクションを定義できます。
注記
Amazon S3 の最新のユースケースの大部分では ACL を使用する必要がなくなっています。オブジェクトごとに個別に制御する必要がある通常ではない状況を除き、ACL は無効にしておくことをお勧めします。ACL を無効にすると、誰がオブジェクトをバケットにアップロードしたかに関係なく、ポリシーを使用してバケット内のすべてのオブジェクトへのアクセスを制御できます。詳細については、「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。
S3 バッチオペレーションでは、ユーザー定義のカスタム ACL と、Amazon S3 で提供されている一連のアクセス許可が事前定義された既定の ACL がサポートされています。
マニフェスト内のオブジェクトがバージョニング対応のバケット内にある場合は、ACL を適用してすべてのオブジェクトのバージョンを指定することができます。そのためには、マニフェストですべてのオブジェクトにバージョン ID を指定します。オブジェクトのバージョン ID を含めない場合、S3 バッチオペレーションはオブジェクトの最新バージョンに ACL を適用します。
Amazon S3 の ACL の詳細については、「アクセスコントロールリスト (ACL) の概要」を参照してください。
S3 ブロックパブリックアクセス
バケット内のすべてのオブジェクトに対するパブリックアクセスを制限する場合は、S3 バッチオペレーションではなく、Amazon S3 パブリックアクセスブロックを使用して ACL を適用することをお勧めします。パブリックアクセスブロックは、素早く効果を発揮する単一の簡単なオペレーションを使用して、バケットごとあるいは全アカウントベースでパブリックアクセスを制限することができます。Amazon S3 パブリックアクセスブロックは、バケットあるいはアカウント内のすべてのオブジェクトに対するパブリックアクセスを制限することが目的の場合には、最適な選択肢となります。S3 バッチオペレーションは、マニフェストのすべてのオブジェクトにカスタム ACL を適用する必要がある場合にのみ使用します。S3 ブロックパブリックアクセスについての詳細は、Amazon S3 ストレージへのパブリックアクセスのブロック を参照してください。
S3 オブジェクトの所有権
マニフェスト内のオブジェクトがバケット内にあり、オブジェクト所有者に [バケット所有者の強制] 設定を使用している場合、[アクセスコントロールリスト (ACL) を置き換える] オペレーションでは、バケット所有者に完全な制御を許可するオブジェクト ACL のみを指定できます。この場合、[アクセスコントロールリスト (ACL) を置き換える] オペレーションは、他の AWS アカウントまたは グループにオブジェクト ACL アクセス許可を付与できません。詳細については、「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。
制約と制限
バッチオペレーションを使用して ACL を置き換える場合、以下の制約と制限が適用されます。
-
[アクセスコントロールリスト (ACL) を置き換える] ジョブを実行するために指定する AWS Identity and Access Management (IAM) ロールには、基になる Amazon S3
PutObjectAcl
オペレーションを実行するための許可が必要です。必要なアクセス許可の詳細については、Amazon Simple Storage Service API リファレンスの「PutObjectAcl」を参照してください。 -
S3 バッチ操作は、Amazon S3 の
PutObjectAcl
オペレーションを使用して、指定した ACL をマニフェストのすべてのオブジェクトに適用します。したがって、基になるPutObjectAcl
オペレーションに適用されるすべての制約と制限は、S3 バッチオペレーションの [アクセスコントロールリスト (ACL) を置き換える] ジョブにも適用されます。