適用於 S3 on Outposts 的 AWS PrivateLink - Amazon S3 on Outposts

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

適用於 S3 on Outposts 的 AWS PrivateLink

S3 on Outposts 支援 AWS PrivateLink,它可透過您虛擬私有網路內的私有端點提供對您的 S3 on Outposts 儲存的直接管理存取權。如此您就能使用自己的虛擬私有雲端 (VPC) 中的私有 IP 地址,進而簡化內部網路架構並在您的 Outposts 物件儲存上執行管理操作。使用 AWS PrivateLink 就不需要使用公有 IP 地址或代理伺服器。

透過 Amazon S3 on Outposts 適用的 AWS PrivateLink,您可以在虛擬私有雲端 (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 的請求,如下圖所示。

資料流程圖顯示介面端點如何路由對 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 介面端點

若要使用 AWS PrivateLink 存取 S3 on Outposts 儲存貯體與端點管理 API,您必須更新您的應用程式,才能使用端點特定的 DNS 名稱。在您建立介面端點時,AWS PrivateLink 會產生兩種類型的端點特定 S3 on Outposts 名稱:區域地區

  • 區域 DNS 名稱 – 包含唯一的 VPC 端點 ID、服務 ID、AWS 區域 及 vpce.amazonaws.com,例如 vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com

  • 區域 DNS 名稱 – 包括唯一的 VPC 端點 ID、可用區域、服務識別碼、AWS 區域 及vpce.amazonaws.com,例如,vpce-1a2b3c4d-5e6f-us-east-1a.s3-outposts.us-east-1.vpce.amazonaws.com。如果您的架構可隔離可用區域,則可以使用此選項。例如,您可以將地區 DNS 名稱用於故障遏止或降低區域資料傳輸成本。

重要

S3 on Outposts 介面端點是從公有 DNS 網域解析而得。S3 on Outposts 不支援私有 DNS。針對所有儲存貯體與端點管理 API 使用 --endpoint-url 參數。

使用 --region--endpoint-url 參數透過 S3 on Outposts 介面端點存取儲存貯體管理與端點管理 API。

範例 :使用端點 URL 列出具有 S3 控制項 API 的儲存貯體

在下列範例中,將區域 us-east-1、VPC 端點 URL vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 及帳戶 ID 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-id 111122223333

將 SDK 更新至最新版本,並設定您的用戶端使用端點 URL,以存取 S3 on Outposts 介面端點的 S3 控制 API。

SDK for Python (Boto3)
範例 :使用端點 URL 存取 S3 控制 API

在下列範例中,將區域 us-east-1 和 VPC 端點 URL vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com 取代為適當的資訊。

control_client = session.client( service_name='s3control', region_name='us-east-1', endpoint_url='https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com' )

如需詳細資訊,請參閱《Boto3 開發人員指南》中的 AWS PrivateLink for Amazon S3

SDK for Java 2.x
範例 :使用端點 URL 存取 S3 控制 API

在下列範例中,將 VPC 端點 URL vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com 和區域 Region.US_EAST_1 取代為適當的資訊。

// control client Region region = Region.US_EAST_1; s3ControlClient = S3ControlClient.builder().region(region) .endpointOverride(URI.create("https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com")) .build()

如需詳細資訊,請參閱 AWS SDK for Java API 參考中的 S3ControlClient

更新內部部署 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 端點政策

您可以將端點政策連接至控制 S3 on Outposts 存取權的 VPC 端點。您還可以使用 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 連線能力選項中的網路至 VPC 連線能力選項

重要
  • 當套用本節所述的 VPC 端點範例政策時,您可能會在無意間封鎖您對儲存貯體的存取。會限制儲存貯體存取源自您 VPC 端點之連線的儲存貯體許可,可能會封鎖所有對儲存貯體的連線。如需有關如何修復此問題的資訊,請參閱我的儲存貯體政策有錯誤的 VPC 或 VPC 端點 ID。我該如何修復政策,讓我可以存取儲存貯體?(位於 支援 知識中心)。

  • 使用下列範例儲存貯體政策之前,請以適合您使用案例的適當值取代 VPC 端點 ID。否則,您將無法存取儲存貯體。

  • 如果您的政策僅允許從特定 VPC 端點存取 S3 on Outposts 儲存貯體,則它會停用對該儲存貯體的主控台存取權,因為主控台請求不是源自指定的 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 儲存貯體政策拒絕透過 vpce-1a2b3c4d VPC 端點在 example-outpost-bucket 儲存貯體上存取 GetBucketPolicy。

aws:sourceVpce 條件會指定端點,且不需要 VPC 端點資源的 Amazon Resource Name (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"} } } ] }