S3 on Outposts 的 AWS PrivateLink
S3 on Outposts 支持 AWS PrivateLink,后者通过虚拟专用网络中的私有端点,提供对 S3 on Outposts 存储的直接管理访问。这样,您就可以使用虚拟私有云(VPC)中的私有 IP 地址,简化内部网络架构并对 Outposts 对象存储执行管理操作。使用 AWS PrivateLink,无需使用公有 IP 地址或代理服务器。
通过将 AWS PrivateLink 用于 Amazon S3 on Outposts,您可以在虚拟私有云(VPC)中预调配接口 VPC 端点,以访问 S3 on Outposts 桶管理和端点管理 API。通过虚拟专用网络(VPN)或 AWS Direct Connect,可以直接从部署在 VPC 中或本地的应用程序访问接口 VPC 端点。您可以通过 AWS PrivateLink 访问桶和端点管理 API。AWS PrivateLink 不支持数据传输 API 操作,例如 GET、PUT 和类似的 API。这些操作已经通过 S3 on Outposts 端点和接入点配置私密传输。有关更多信息,请参阅 S3 on Outposts 的网络。
接口端点由一个或多个弹性网络接口 (ENI) 代表,这些接口是从 VPC 中的子网分配的私有 IP 地址。向 S3 on Outposts 的接口端点发出的请求将自动路由到 AWS 网络上的 S3 on Outposts 桶和端点管理 API。您还可以通过 AWS Direct Connect 或 AWS Virtual Private Network (AWS VPN) 从本地部署应用程序访问 VPC 中的接口端点。有关如何将 VPC 与本地网络连接的更多信息,请参阅 AWS Direct Connect 用户指南和 AWS Site-to-Site VPN 用户指南。
接口端点通过 AWS 网络和通过 AWS PrivateLink 路由对 S3 on Outposts 桶和端点管理 API 的请求,如下图所示。
有关接口端点的一般信息,请参阅 AWS PrivateLink 指南中的接口 VPC 端点 (AWS PrivateLink)。
限制和局限性
当您通过 AWS PrivateLink 访问 S3 on Outposts 桶和端点管理 API 时,将适用 VPC 限制。有关更多信息,请参阅 AWS PrivateLink 指南中的接口端点属性和限制以及 AWS PrivateLink 配额。
此外,AWS PrivateLink 不支持以下内容:
-
S3 on Outposts 数据传输 API,例如,GET、PUT 和类似的对象 API 操作。
-
私有 DNS
访问 S3 on Outposts 接口端点
要使用 AWS PrivateLink 访问 S3 on Outposts 桶和端点管理 API,您必须更新应用程序以使用特定于端点的 DNS 名称。创建接口端点时,AWS PrivateLink 会生成两种特定于端点的 S3 on Outposts 名称:区域 和可用区。
-
区域 DNS 名称 – 包括唯一的 VPC 端点 ID、服务标识符、AWS 区域和
vpce.amazonaws.com
,例如
。vpce-1a2b3c4d-5e6f
.s3-outposts.us-east-1.vpce.amazonaws.com -
可用区 DNS 名称 – 包括唯一的 VPC 端点 ID、可用区、服务标识符、AWS 区域和
vpce.amazonaws.com
,例如
。如果您的架构隔离了可用区,则可以使用此选项。例如,您可以将可用区 DNS 名称用于故障控制或降低区域数据传输成本。vpce-1a2b3c4d-5e6f
-us-east-1a.s3-outposts.us-east-1.vpce.amazonaws.com
重要
S3 on Outposts 接口端点是从公有 DNS 域解析出来的。S3 on Outposts 不支持私有 DNS。将 --endpoint-url
参数用于所有桶和端点管理 API。
AWS CLI 示例
使用 --region
和 --endpoint-url
参数,通过 S3 on Outposts 接口端点访问桶管理和端点管理 API。
例 :使用端点 URL 列出具有 S3 控制 API 的桶
在以下示例中,将区域
、VPC 端点 URL us-east-1
和账户 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
替换为相应的信息。111122223333
aws s3control list-regional-buckets --region
us-east-1
--endpoint-url https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com
--account-id111122223333
AWS SDK 示例
将 SDK 更新到最新版本,然后将客户端配置为使用端点 URL 访问 S3 on Outposts 接口端点的 S3 控制 API。
更新本地 DNS 配置
使用特定于端点的 DNS 名称访问适用于 S3 on Outposts 桶管理和端点管理 API 的接口端点时,您不必更新本地 DNS 解析程序。您可以使用来自公有 S3 on Outposts DNS 域的接口端点的私有 IP 地址解析特定于端点的 DNS 名称。
为 S3 on Outposts 创建 VPC 端点
要为 S3 on Outposts 创建 VPC 接口端点,请参阅《AWS PrivateLink 指南》中的创建 VPC 端点。
为 S3 on Outposts 创建桶策略和 VPC 端点策略
您可以向 VPC 端点附加用于控制对 S3 on Outposts 的访问的端点策略。您还可以在 S3 on Outposts 桶策略中使用 aws:sourceVpce
条件来限制从特定 VPC 端点访问特定的桶。使用 VPC 端点策略,您可以控制对 S3 on Outposts 桶管理 API 和端点管理 API 的访问。使用桶策略,您可以控制对 S3 on Outposts 桶管理 API 的访问。但是,您无法使用 aws:sourceVpce
管理对 S3 on Outposts 的对象操作的访问。
S3 on Outposts 的访问策略指定以下信息:
-
允许或拒绝其操作的 AWS Identity and Access Management (IAM) 主体。
-
允许或拒绝的 S3 控制操作。
-
允许或拒绝其操作的 S3 on Outposts 资源。
以下示例显示了限制对桶或端点的访问的策略。有关 VPC 连接的更多信息,请参阅 AWS 白皮书 Amazon Virtual Private Cloud 连接性选项中的 Network-to-VPC connectivity options(从网络到 VPC 的连接性选项)。
重要
-
当您如本节所述对 VPC 端点应用示例策略时,您可能会无意中阻止对桶的访问权限。桶权限会限制桶访问源自 VPC 端点的连接,而这可能会阻止到桶的所有连接。有关如何修复此问题的信息,请参阅我的桶策略有错误的 VPC 或 VPC 端点 ID。AWS Support 知识中心内的如何修复策略才能访问桶?
。 -
在使用以下示例桶策略之前,请将 VPC 端点 ID 替换为适合您的使用案例的值。否则,您将无法访问您的桶。
-
如果您的策略仅允许从特定 VPC 端点访问 S3 on Outposts 桶,它将禁用通过控制台访问该桶,因为控制台请求不是源自指定的 VPC 端点。
示例:限制从 VPC 端点对特定桶的访问
您可以创建一个端点策略以仅允许访问特定的 S3 on Outposts 桶。以下策略将 GetBucketPolicy 操作的访问权限仅限于
。要使用此策略,请将示例值替换为您自己的值。example-outpost-bucket
{ "Version": "2012-10-17", "Id": "Policy1415115909151", "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": {"AWS":"111122223333"}, "Action": "s3-outposts:GetBucketPolicy", "Effect": "Allow", "Resource": "arn:aws:s3-outposts:
region
:123456789012
:outpost/op-01ac5d28a6a232904
/bucket/example-outpost-bucket
" } ] }
示例:在 S3 on Outposts 桶策略中拒绝从特定 VPC 端点访问
以下 S3 on Outposts 桶策略拒绝通过
VPC 端点访问 vpce-1a2b3c4d
桶上的 GetBucketPolicy。example-outpost-bucket
aws:sourceVpce
条件指定端点,不需要 VPC 端点资源的 Amazon 资源名称 (ARN),只需要端点 ID。要使用此策略,请将示例值替换为您自己的值。
{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Deny-access-to-specific-VPCE", "Principal": {"AWS":"111122223333"}, "Action": "s3-outposts:GetBucketPolicy", "Effect": "Deny", "Resource": "arn:aws:s3-outposts:
region
:123456789012
:outpost/op-01ac5d28a6a232904
/bucket/example-outpost-bucket
", "Condition": { "StringEquals": {"aws:sourceVpce": "vpce-1a2b3c4d
"} } } ] }