创建限制到 Virtual Private Cloud 的接入点 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建限制到 Virtual Private Cloud 的接入点

创建接入点时,您可以选择让接入点可从 Internet 访问,也可以指定通过该接入点发出的所有请求都必须来自特定 Virtual Private Cloud(VPC)。可从 Internet 访问的接入点被认为是具有 Internet 网络起源。它可以在 Internet 上的任何位置使用,但受到接入点、底层存储桶和相关资源(如请求的对象)的任何其他访问限制的约束。只能从指定 VPC 访问的接入点的网络起源为 VPC,并且 Amazon S3 会拒绝从该 VPC 之外的来源向接入点发出的任何请求。

重要

您只能在创建接入点时指定接入点的网络起源。创建接入点后,无法更改其网络起源。

要将接入点限制为仅限于 VPC 访问,请在创建接入点的请求中包括 VpcConfiguration 参数。在 VpcConfiguration 参数中,您指定希望能够使用接入点的 VPC ID。如果请求是通过接入点发出的,则该请求必须源自 VPC,否则 Amazon S3 将拒绝该请求。

您可以使用 Amazon CLI、Amazon SDK 或 REST API 检索接入点的网络起源。如果接入点指定了 VPC 配置,则其网络起源为 VPC。否则,接入点的网络起源为 Internet

示例:创建仅限 VPC 访问的接入点

以下示例为账户 123456789012 中的存储桶 example-bucket 创建一个名为 example-vpc-ap 的接入点,该接入点仅允许从 VPC vpc-1a2b3c 访问。然后,该示例验证新接入点是否具有 VPC 网络起源。

Amazon 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 端点策略同时授予对接入点和底层存储桶的访问权限时,从 VPC 通过接入点到 S3 的请求才会成功。

注意

要使资源只能在 VPC 中访问,请确保为 VPC 端点创建私有托管区域。要使用私有托管区域,请修改您的 VPC 设置,以便 VPC 网络属性 enableDnsHostnamesenableDnsSupport 设置为 true

以下示例策略语句配置 VPC 端点,以允许对名为 awsexamplebucket1 的存储桶和名为 example-vpc-ap 的接入点执行 GetObject 调用。

{ "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 的端点策略