配置多区域接入点以便与 AWS PrivateLink 共同使用
使用虚拟私有云(VPC)中的私有 IP 地址,AWS PrivateLink 为您提供与 Amazon S3 的私有连接。您可以在 VPC 内预置一个或多个接口端点,连接到 Amazon S3 多区域接入点。
通过 AWS Management Console、AWS CLI 或 AWS 开发工具包,您可以创建多区域接入点的 com.amazonaws.s3-global.accesspoint 端点。要了解有关如何为多区域接入点配置接口端点的更多信息,请参阅 VPC 用户指南中的接口 VPC 端点。
要通过接口端点向多区域接入点发出请求,请按照以下步骤配置 VPC 和多区域接入点。
配置多区域接入点与 AWS PrivateLink 一起使用
-
创建或拥有可连接到多区域接入点的适当 VPC 端点。有关创建 VPC 端点的更多信息,请参阅 VPC 用户指南中的接口 VPC 端点。
重要
请确保创建 com.amazonaws.s3-global.accesspoint 端点。其他端点类型无法访问多区域接入点。
创建此 VPC 端点后,如果为端点启用了私有 DNS,则 VPC 中的所有多区域接入点请求都会通过此端点路由。默认为启用状态。
-
如果多区域接入点策略不支持来自 VPC 端点的连接,需要对其进行更新。
-
验证各个桶策略是否允许访问多区域接入点的用户。
请记住,多区域接入点的工作方式是将请求路由到桶,而不是自行完成请求。重要的是要牢记,因为请求的发起人必须具有对多区域接入点的权限,并允许访问多区域接入点中的各个桶。否则,请求可能会被路由到发起方没有执行请求的权限的桶。多区域接入点和关联的桶必须由相同或另一个 AWS 账户拥有。但是,如果权限配置正确,来自不同帐户的 VPC 可以使用多区域接入点。
因此,VPC 端点策略必须允许访问多区域接入点和您希望能够满足请求的每个底层桶。例如,假设您有一个别名为 mfzwi23gnjvgw.mrap
的多区域接入点。它由桶 amzn-s3-demo-bucket1
和 amzn-s3-demo-bucket2
提供支持,所有这些都归 AWS 账户 123456789012
所有。在这种情况下,以下 VPC 端点策略将允许来自 VPC 的对 mfzwi23gnjvgw.mrap
发出的 GetObject
请求由任一备份桶来完成。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Read-buckets-and-MRAP-VPCE-policy", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket1
/*", "arn:aws:s3:::amzn-s3-demo-bucket2
/*", "arn:aws:s3::123456789012:accesspoint/mfzwi23gnjvgw.mrap/object/*" ] }] }
如前所述,您还必须确保将多区域接入点策略配置为支持通过 VPC 端点进行访问。您无需指定正在请求访问的 VPC 端点。以下示例策略将向任何试图使用多区域接入点进行 GetObject
请求的请求者授予访问权限。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Open-read-MRAP-policy", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3::123456789012:accesspoint/mfzwi23gnjvgw.mrap/object/*" }] }
当然,每个桶都需要一个策略来支持通过 VPC 端点提交请求的访问。以下示例策略向任何匿名用户授予读取权限,其中包括通过 VPC 端点发出的请求。
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Public-read", "Effect":"Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket1
", "arn:aws:s3:::amzn-s3-demo-bucket2
/*"] }] }
有关编辑 VPC 端点策略的更多信息,请参阅《VPC 用户指南》中的使用 VPC 端点控制对服务的访问。