Virtual Private Cloud に制限されたアクセスポイントの作成 - Amazon Simple Storage Service

Virtual Private Cloud に制限されたアクセスポイントの作成

アクセスポイントを作成するときに、そのアクセスポイントをインターネットからアクセス可能にするか、特定の Virtual Private Cloud (VPC) からのリクエストにのみアクセスを制限するかを指定できます。インターネットからアクセス可能なアクセスポイントは、Internet をネットワークオリジンとすると言います。この種のアクセスポイントは、インターネット上のどこからでも利用できます。ただし、このアクセスポイントや、基となるバケット、関連リソース (リクエストされたオブジェクトなど) に関する他のすべてのアクセス制限に従うことを条件とします。指定された VPC からのみアクセス可能なアクセスポイントは VPC をネットワークオリジンとします。Amazon S3 は、アクセスポイントに対するその VPC からのリクエストを除いて、他のすべてのリクエストを拒否します。

重要

アクセスポイントのネットワークオリジンは、アクセスポイントの作成時にのみ指定できます。アクセスポイントの作成後は、そのネットワークオリジンを変更できません。

アクセスポイントを VPC からのアクセスにのみ制限するには、アクセスポイントを作成するリクエストに VpcConfiguration パラメータを含めます。VpcConfiguration パラメータには、アクセスポイントを使用できるようにする VPC ID を指定します。アクセスポイントを介してリクエストが行われた場合、リクエストは VPC から発信されている必要があり、そうでない場合、Amazon S3 はそれを拒否します。

アクセスポイントのネットワークオリジンを取得するには、AWS CLI、AWS SDK、または REST API を使用します。アクセスポイントに VPC 設定が指定されている場合、そのネットワークオリジンは VPC です。それ以外の場合、アクセスポイントのネットワークオリジンは Internet です。

例: VPC アクセスに制限されたアクセスポイントを作成する

次の例では、アカウント 123456789012 のバケット example-bucket に対して vpc-1a2b3c VPC からのアクセスのみを許可する example-vpc-ap という名前のアクセスポイントを作成します。次に、新しいアクセスポイントのネットワークオリジンが VPC であることを確認します。

AWS CLI
aws s3control create-access-point --name example-vpc-ap --account-id 123456789012 --bucket example-bucket --vpc-configuration VpcId=vpc-1a2b3c
aws s3control get-access-point --name example-vpc-ap --account-id 123456789012 { "Name": "example-vpc-ap", "Bucket": "example-bucket", "NetworkOrigin": "VPC", "VpcConfiguration": { "VpcId": "vpc-1a2b3c" }, "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "IgnorePublicAcls": true, "BlockPublicPolicy": true, "RestrictPublicBuckets": true }, "CreationDate": "2019-11-27T00:00:00Z" }

VPC でアクセスポイントを使用するには、VPC エンドポイントのアクセスポリシーを変更する必要があります。VPC エンドポイントは、VPC から Amazon S3 へのトラフィックフローを許可します。これらのエンドポイントには、VPC 内のリソースに対して Amazon S3 とのやり取りを許可する方法を制御するアクセスコントロールポリシーがあります。アクセスポイントを経由した VPC から Amazon S3 へのリクエストが成功するのは、VPC エンドポイントポリシーがアクセスポイントおよび基となるバケットの両方へのアクセスを許可した場合のみです。

注記

VPC 内でのみリソースにアクセスできるようにするには、VPC エンドポイントエンドポイントに対してプライベートホストゾーンを必ず作成してください。プライベートホストゾーンを使うには、VPC 設定を変更して、VPC のネットワーク属性 enableDnsHostnamesenableDnsSupporttrue に設定してください。

次のポリシーステートメントの例では、awsexamplebucket1 という名前のバケットと example-vpc-ap という名前のアクセスポイントに対する GetObject の呼び出しを許可するように VPC エンドポイントを設定します。

{ "Version": "2012-10-17", "Statement": [ { "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::awsexamplebucket1/*", "arn:aws:s3:us-west-2:123456789012:accesspoint/example-vpc-ap/object/*" ] }] }
注記

この例の "Resource" 宣言では、Amazon リソースネーム (ARN) を使用してアクセスポイントを指定します。アクセスポイントの ARN の詳細については、「アクセスポイントの使用」を参照してください。

VPC エンドポイントポリシーの詳細については、VPC ユーザーガイドの「Amazon S3 のエンドポイントポリシーの使用」を参照してください。