Amazon S3 の VPC エンドポイント用のバケットポリシーの例 - Amazon Simple Storage Service

Amazon S3 の VPC エンドポイント用のバケットポリシーの例

Amazon S3 バケットポリシーを使用して、特定の virtual private cloud (VPC) (VPC) エンドポイントまたは特定の VPC からバケットへのアクセスを制御できます。このセクションでは、VPC エンドポイントから Amazon S3 バケットのアクセスを制御するために使用できるバケットポリシーの例が含まれています。VPC エンドポイントの設定方法については、『VPC ユーザーガイド』の「VPC エンドポイント」を参照してください。

VPC を使用すると、定義した仮想ネットワークで AWS リソースを起動できます。VPC エンドポイントにより、インターネット、VPN 接続、NAT インスタンス、または AWS Direct Connect 経由でのアクセスを使用せずに、VPC と別の AWS のサービスとの間でプライベート接続を作成できます。

Amazon S3 の VPC エンドポイントは、Amazon S3 のみへの接続を許可する VPC 内の論理エンティティです。VPC エンドポイントはリクエストを Amazon S3 にルーティングし、応答を VPC にルーティングします。VPC エンドポイントはリクエストのルーティング方法のみを変更します。Amazon S3 パブリックエンドポイントおよび DNS 名は、引き続き VPC エンドポイントで使用できます。Amazon S3 での VPC エンドポイントの使用に関する重要な情報については、『VPC ユーザーガイド』の「ゲートウェイ VPC エンドポイント」と「Amazon S3 のエンドポイント」を参照してください。

Amazon S3 の VPC エンドポイントには、Amazon S3 データへのアクセスをコントラストするために、2 通りの方法が用意されています。

  • 特定の VPC エンドポイントを通じて許可されるリクエスト、ユーザー、またはグループを管理できます。この種類のアクセス制御については、VPC ユーザーガイド の「VPC エンドポイントによるサービスのアクセスコントロール」を参照してください。

  • Amazon S3 バケットポリシーを使用して、バケットへのアクセスが可能な VPC または VPC エンドポイントをコントロールできます。この種類のバケットポリシーのアクセス制御の例については、アクセス制限に関する次のトピックを参照してください。

重要

このセクションで説明している VPC エンドポイントに Amazon S3 バケットポリシーを適用すると、バケットへのアクセスが意図せずにブロックされる場合があります。特に VPC エンドポイントからの接続に対するバケットのアクセスを制限することを目的としたバケットのアクセス許可により、バケットへのすべての接続がブロックされる場合があります。この問題の修正方法については、「バケットポリシーに間違った VPC または VPC エンドポイント ID があります」を参照してください。AWS サポートナレッジセンターのバケットにアクセスできるようにポリシーを修正するにはどうすればよいですか?

特定の VPC エンドポイントへのアクセスの制限

次に示す Amazon S3 バケットポリシーの例では、特定のバケット (awsexamplebucket1) に対するアクセスを ID が vpce-1a2b3c4d の VPC エンドポイントからのアクセスのみに制限します。指定されたエンドポイントを使用していない場合、ポリシーによりバケットへのすべてのアクセスが拒否されます。エンドポイントを指定するために、aws:SourceVpce 条件が使用されます。aws:SourceVpce 条件では、VPC エンドポイントの ID のみが必要で、VPC エンドポイントのリソースの Amazon リソースネーム (ARN) は必要ありません。ポリシーで条件を使用する方法の詳細については、「Amazon S3 条件キー」を参照してください。

重要
  • 次のポリシーの例を使用する前に、VPC エンドポイントの ID をユースケースに応じた値に置き換えてください。そうしないと、バケットにアクセスできません。

  • このポリシーは、コンソールリクエストが指定の VPC エンドポイントを経由していない場合、指定先のバケットへのコンソールアクセスを無効にします。

{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::awsexamplebucket1", "arn:aws:s3:::awsexamplebucket1/*"], "Condition": { "StringNotEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } } ] }

特定の VPC へのアクセスの制限

aws:SourceVpc 条件を使用して、特定の VPC へのアクセスを制限するバケットポリシーを作成できます。これは、同じ VPC で複数の VPC エンドポイントを設定済みで、すべてのエンドポイントについて Amazon S3 バケットへのアクセスを管理する場合に便利です。以下に、vpc-111bbb22 およびそのオブジェクトへのアクセスを VPC awsexamplebucket1 に許可するポリシーの例を示します。指定された VPC を使用していない場合、ポリシーによりバケットへのすべてのアクセスが拒否されます。vpc-111bbb22 条件キーでは、VPC リソースへの ARN は必要なく、VPC ID のみが必要です。

重要
  • 次のポリシーの例を使用する前に、VPC の ID をユースケースに応じた値に置き換えてください。そうしないと、バケットにアクセスできません。

  • このポリシーは、コンソールリクエストが指定の VPC を経由していない場合、指定先のバケットへのコンソールアクセスを無効にします。

{ "Version": "2012-10-17", "Id": "Policy1415115909153", "Statement": [ { "Sid": "Access-to-specific-VPC-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::awsexamplebucket1", "arn:aws:s3:::awsexamplebucket1/*"], "Condition": { "StringNotEquals": { "aws:SourceVpc": "vpc-111bbb22" } } } ] }