バケットポリシーの使用 - Amazon Simple Storage Service

バケットポリシーの使用

バケットポリシーを作成して設定して、Amazon S3 リソースにアクセス許可を付与できます。

バケットポリシーは、バケットとその中のオブジェクトへのアクセス許可を付与できるリソースベースのポリシーです。バケット所有者のみが、ポリシーをバケットに関連付けることができます。バケットに添付された許可は、バケット所有者が所有するバケットのすべてのオブジェクトに適用されます。これらの許可は、他の AWS アカウント が所有するオブジェクトには適用されません。

デフォルトでは、別の AWS アカウント がオブジェクトを S3 バケットにアップロードすると、そのアカウント (オブジェクトライター) がオブジェクトを所有し、そのオブジェクトにアクセスでき、ACL を介して他のユーザーにそのオブジェクトへのアクセスを許可できます。オブジェクトの所有権を使用してこのデフォルトの動作を変更し、ACL を無効にして、バケット所有者としてバケット内のすべてのオブジェクトを自動的に所有することができます。その結果、データのアクセスコントロールは、IAM ポリシー、S3 バケットポリシー、仮想プライベートクラウド (VPC) エンドポイントポリシー、AWS Organizations サービスコントロールポリシー (SCP) などのポリシーに基づいています。詳細については、オブジェクトの所有権の制御とバケットの ACL の無効化。 を参照してください。

バケットポリシーは、JSON ベースのアクセスポリシー言語を使用しています。バケットポリシーを使用して、バケット内のオブジェクトに対する許可を追加または拒否できます。バケットポリシーは、リクエスタ、S3 アクション、リソース、リクエストの側面または条件(リクエストの作成に使用された IP アドレスなど)など、ポリシー内のエレメントに基づいてリクエストを許可または拒否します。例えば、バケット所有者がアップロードされたオブジェクトを完全にコントロールできるように、S3 バケットにオブジェクトをアップロードするクロスアカウント許可を付与するバケットポリシーを作成できます。詳細については、バケットポリシーの例 を参照してください。

バケットポリシーでは、Amazon リソースネーム (ARN) やその他の値に対してワイルドカード文字を使用して、オブジェクトのサブセットに対する許可を付与できます。例えば、共通のプレフィックスで始まるか、.html などの特定の拡張子で終わるオブジェクトのグループへのアクセスをコントロールできます。

このセクションのトピックでは、具体例と、S3 コンソールにバケットポリシーを追加する方法について説明します。IAM ユーザーポリシーの詳細については、IAM ユーザーポリシーの使用 を参照してください。バケットポリシー言語の詳細については、Amazon S3 のポリシーとアクセス許可 を参照してください。

重要

バケットポリシーのサイズは 20 KB に制限されています。