Amazon Simple Storage Service
開発者ガイド (API バージョン 2006-03-01)

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

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

Amazon 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 での Amazon VPC エンドポイントの使用に関する重要な情報については、『Amazon VPC ユーザーガイド』の「ゲートウェイ VPC エンドポイント」と「Amazon S3 のエンドポイント」を参照してください。

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

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

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

重要

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

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

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

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

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

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

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