S3 Tables 的 VPC 連線能力 - Amazon Simple Storage Service

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

S3 Tables 的 VPC 連線能力

S3 Tables 中的所有資料表皆採用 Apache Iceberg 格式,而且是由兩種類型的 S3 物件組成。這兩種類型的物件是資料檔案,用於存放資料和中繼資料檔案,可追蹤資料檔案在不同時間點的資訊。所有資料表儲存貯體、命名空間和資料表操作 (例如 CreateNamespaceCreateTable 等) 都會透過 S3 Tables 端點 (s3tables.region.amazonaws.com) 路由,而讀取或寫入資料和中繼資料檔案的所有物件層級操作都會繼續透過 S3 服務端點 (s3.region.amazonaws.com) 路由。

若要存取 S3 Tables,Amazon S3 使用 AWS PrivateLink閘道端點和介面端點支援兩種類型的 VPC 端點。閘道端點是您在路由表中指定的閘道,可透過 AWS 網路從 VPC 存取 S3。介面端點使用私有 IP 地址,從 VPC 內部、內部部署,或使用 VPC 對等互連或 ,從另一個 VPC 將請求路由至 Amazon S3, AWS 區域 藉此擴充閘道端點的功能 AWS Transit Gateway。

若要從 VPC 存取 S3 Tables,建議您建立兩個 VPC 端點 (一個用於 S3,另一個用於 S3 Tables)。您可以建立閘道或介面端點,將檔案 (物件) 層級操作路由至 S3,以及建立介面端點,將儲存貯體和資料表層級操作路由至 S3 Tables。您可以使用 S3,為檔案層級請求建立和使用 VPC 端點。如需詳細資訊,請參閱《AWS PrivateLink 使用者指南》中的閘道端點

若要進一步了解如何使用 AWS PrivateLink 來建立和使用 S3 Tables 的端點,請參閱下列主題。如要建立 VPC 介面端點,請參閱《AWS PrivateLink 指南》中的建立 VPC 端點

為 S3 Tables 建立 VPC 端點

在您建立介面 VPC 端點時,S3 Tables 會產生兩種類型的端點特定 DNS 名稱:區域和地區。

  • 區域 DNS 名稱的格式如下:VPCendpointID.s3tables.AWSregion.vpce.amazonaws.com。例如,針對 VPC 端點 ID vpce-1a2b3c4d,產生的 DNS 名稱將類似於 vpce-1a2b3c4d-5e6f.s3tables.us-east-1.vpce.amazonaws.com

  • 地區 DNS 名稱的格式如下:VPCendpointID-AvailabilityZone.s3tables.AWSregion.vpce.amazonaws.com。例如,針對 VPC 端點 ID vpce-1a2b3c4d-5e6f.,產生的 DNS 名稱將類似於 vpce-1a2b3c4d-5e6f-us-east-1a.s3tables.us-east-1.vpce.amazonaws.com

    地區 DNS 名稱包含您的可用地區。如果您的架構會隔離可用區域,則可以使用地區 DNS 名稱。您可以從 S3 公有 DNS 網域解析端點特定 S3 DNS 名稱。

您還可以使用私有 DNS 選項來簡化透過 VPC 端點的 S3 流量路由,並協助您利用適用於應用程式的成本最低網路路徑。私有 DNS 會將 S3 Tables 的公有端點 (例如 s3tables.region.amazonaws.com),對應至 VPC 中的私有 IP。您可以使用私有 DNS 選項來路由區域 S3 流量,而無需更新 S3 用戶端,以使用介面端點的端點特定 DNS 名稱。

注意

AWS PrivateLink for Amazon S3 不支援使用 Amazon S3 雙堆疊端點。如需詳細資訊,請參閱 Amazon S3 API 參考中的使用 Amazon S3 雙堆疊端點

使用 透過端點存取資料表儲存貯體和資料表 AWS CLI

您可以使用 AWS Command Line Interface (AWS CLI) 透過介面端點存取資料表儲存貯體和資料表。透過 AWS CLI, aws s3命令會透過 Amazon S3 端點路由流量。aws s3tables AWS CLI 命令使用 Amazon S3 Tables 端點。

s3tables VPC 端點的範例為 vpce-0123456afghjipljw-nmopsqea.s3tables.region.vpce.amazonaws.com

s3tables VPC 端點不包含儲存貯體名稱。您可以使用 aws s3tables AWS CLI 命令存取 s3tables VPC 端點。

s3 VPC 端點的範例為 amzn-s3-demo-bucket.vpce-0123456afghjipljw-nmopsqea.s3.region.vpce.amazonaws.com

您可以使用 aws s3 AWS CLI 命令存取 s3 VPC 端點。

若要使用 透過界面端點存取資料表儲存貯體和資料表 AWS CLI,請使用 -region- 和 --endpoint-url 參數。若要執行資料表儲存貯體和資料表層級動作,請使用 S3 Tables 端點 URL。若要執行物件層級動作,請使用 Amazon S3 端點 URL。

在下列範例中,請用您自己的資訊取代使用者輸入預留位置

範例 1:使用端點 URL 列出帳戶中的資料表儲存貯體

aws s3tables list-table-buckets --endpoint https://vpce-0123456afghjipljb-aac.s3tables.us-east-1.vpce.amazonaws.com —region us-east-1

範例 2:使用端點 URL 列出儲存貯體中的資料表

aws s3tables list-tables --table-bucket-arn arn:aws:s3tables:us-east-1:123456789301:bucket/amzn-s3-demo-bucket --endpoint https://vpce-0123456afghjipljb-aac.s3tables.us-east-1.vpce.amazonaws.com --region us-east-1

在使用查詢引擎時設定 VPC 網路

使用查詢引擎時,請使用下列步驟設定 VPC 網路。

  1. 若要開始使用,您可以建立或更新 VPC。如需詳細資訊,請參閱建立一個 VPC

  2. 對於路由至 S3 Tables 的資料表和資料表儲存貯體層級操作,請建立新的介面端點。如需詳細資訊,請參閱使用介面 VPC 端點存取 AWS 服務

  3. 對於路由至 Amazon S3 的所有物件層級操作,請建立閘道端點或介面端點。如需有關閘道端點的詳細資訊,請參閱建立閘道端點

  4. 接著,請設定您的資料資源並啟動 Amazon EMR 叢集。如需詳細資訊,請參閱開始使用 Amazon EMR

  5. 然後,您可以從 VPC 端點選取您的 DNS 名稱,以提交具有其他組態的 Spark 應用程式。例如,spark.sql.catalog.ice_catalog.s3tables.endpointhttps://interface-endpoint.s3tables.us-east-1.vpce.amazonaws.com。如需詳細資訊,請參閱將工作提交至您的 Amazon EMR 叢集

限制對 VPC 網路內對 S3 Tables 的存取

與資源型政策類似,您可以將端點政策連接至 VPC 端點,以控制對資料表和資料表儲存貯體的存取權。在下列範例中,介面端點政策只會限制對特定資料表儲存貯體的存取。

{ "Version": "2012-10-17", "Id": "Policy141511512309", "Statement": [{ "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": "s3tables:*", "Effect": "Allow", "Resource": [ "arn:aws:s3tables:region:account_id:bucket/amzn-s3-demo-bucket", "arn:aws:s3tables:region:account_id:bucket/amzn-s3-demo-bucket/*" ] }] }