创建限制到 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
网络起源。
要将访问点与 VPC 搭配使用,您必须修改 VPC 端点的访问策略。VPC 端点允许流量从您的 VPC 流向 Amazon S3。它们具有访问控制策略,用于控制如何允许 VPC 内的资源与 Amazon S3 交互。仅当 VPC 端点策略同时授予对访问点和底层桶的访问权限时,从 VPC 通过访问点到 S3 的请求才会成功。
要使资源只能在 VPC 中访问,请确保为 VPC 端点创建私有托管区域。要使用私有托管区域,请修改您的 VPC 设置,以便 VPC 网络属性 enableDnsHostnames
和 enableDnsSupport
设置为 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 的端点策略。