

# Amazon S3 のバケットポリシー
<a name="bucket-policies"></a>

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

S3 オブジェクト所有権は、Amazon S3 バケットレベルの設定で、バケットにアップロードされたオブジェクトの所有権を制御し、アクセスコントロールリスト (ACL) を有効または無効にするのに使用できます。デフォルトでは、オブジェクト所有権は[バケット所有者の強制] 設定に設定され、すべての ACL は無効になっています。バケット所有者は、バケット内のすべてのオブジェクトを所有し、ポリシーのみを使用してオブジェクトへのアクセスを管理します。

バケットポリシーは、JSON ベースの AWS Identity and Access Management (IAM) ポリシー言語を使用します。バケットポリシーを使用して、バケット内のオブジェクトに対する許可を追加または拒否できます。バケットポリシーは、ポリシーの要素に基づいて、リクエストを許可または拒否します。これらの要素には、リクエスタ、S3 アクション、リソース、およびリクエストの側面または条件 (リクエストの作成に使用された IP アドレスなど) が含まれます。

例えば、次のことを実行するバケットポリシーを作成できます。
+ S3 バケットにオブジェクトをアップロードするためのクロスアカウントアクセス許可を付与するクロスアカウントアクセス許可を付与する
+ バケット所有者であるユーザーが、アップロードされたオブジェクトを完全に管理できるようにする

詳細については、「[Amazon S3 バケットポリシーの例](example-bucket-policies.md)」を参照してください。

**重要**  
バケットポリシーを使用して、[S3 ライフサイクル](object-lifecycle-mgmt.md)ルールによる削除や移行を防ぐことはできません。例えば、バケットポリシーがすべてのプリンシパルのすべてのアクションを拒否する場合でも、S3 ライフサイクル設定は通常どおり機能します。

このセクションのトピックでは、具体例と、S3 コンソールにバケットポリシーを追加する方法について説明します。アイデンティティベースのポリシーについては、「[Amazon S3 のアイデンティティベースのポリシー](security_iam_id-based-policy-examples.md)」を参照してください。バケットポリシー言語の詳細については、「[Amazon S3 のポリシーとアクセス許可](access-policy-language-overview.md)」を参照してください。

S3 リソースタイプ別の S3 API オペレーションへのアクセス許可の詳細については、「[Amazon S3 API オペレーションに必要なアクセス許可](using-with-s3-policy-actions.md)」を参照してください。

**Topics**
+ [Amazon S3 コンソールを使用したバケットポリシーの追加](add-bucket-policy.md)
+ [バケットポリシーを使用した VPC エンドポイントからのアクセスコントロール](example-bucket-policies-vpc-endpoint.md)
+ [Amazon S3 バケットポリシーの例](example-bucket-policies.md)
+ [条件キーを使用したバケットポリシーの例](amazon-s3-policy-keys.md)