创建限制到 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 软件开发工具包或 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 的端点策略