AWS PrivateLink 適用於動態支援 - Amazon DynamoDB

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

AWS PrivateLink 適用於動態支援

使 AWS PrivateLink 用 DynamoDB,您可以在虛擬私有雲端 (Amazon VPC) 中佈建介面 Amazon VPC 端點 (界面端點)。這些端點可透過 VPN 直接從內部部署的應用程式存取 AWS Direct Connect,或透 AWS 區域 過 Amazon VPC 對等互連的不同應用程式存取。使用 AWS PrivateLink 和介面端點,您可以簡化從應用程式到 DynamoDB 的私有網路連線。

VPC 中的應用程式不需要公用 IP 位址即可與 DynamoDB 介面虛擬私人雲端端點進行通訊,以進行 DynamoDB 作業。界面端點由一個或多個彈性網路界面 (ENI) 表示,這些界面是從 Amazon VPC 中的子網路指派私有 IP 地址。透過界面端點向 DynamoDB 發出的請求會保留在 Amazon 網路上。您也可以透過 AWS Direct Connect 或 AWS Virtual Private Network (AWS VPN) 從現場部署應用程式存取 Amazon VPC 中的界面端點。有關如何將 Amazon VPC 與現場部署網路連接的詳細資訊,請參閱AWS Direct Connect 使用者指南和使用AWS Site-to-Site VPN 者指南

如需有關介面端點的一般資訊,請參閱AWS PrivateLink 指南中的介面 Amazon VPC 端點 (AWS PrivateLink)

Amazon VPC 端點的類 Amazon DynamoDB

您可以使用兩種類型的 Amazon VPC 端點來存取 Amazon DynamoDB:閘道端點和界面端 (使用)。 AWS PrivateLink閘道端點是您在路由表中指定的閘道,可透過網路從 Amazon VPC 存取 DynamoDB。 AWS 界面端點可使用私有 IP 地址,透過使用 Amazon VPC 對等或從 Amazon VPC 內部、內部部署或從另一個 Amazon VPC 中的 Amazon VPC 路由請求路 AWS 區域 由到 DynamoDB,以擴展閘道端點的功能。 AWS Transit Gateway如需詳細資訊,請參閱什麼是 Amazon VPC 對等互連? 和 Transit Gateway 與 Amazon VPC 對等互連。

介面端點與閘道端點相容。如果 Amazon VPC 中有現有的閘道端點,則可以在同一個 Amazon VPC 中使用這兩種類型的端點。

閘道 DynamoDB 點

DynamoDB 支援的介面端點

在這兩種情況下,您的網路流量都會保留在 AWS 網路上。

使用 Amazon DynamoDB 公有 IP 地址

使用 Amazon VPC 中的私有 IP 地址存取 Amazon DynamoDB

不允許從內部部署存取

允許從內部部署存取

不允許從其他人存取 AWS 區域

AWS 區域 透過使用 Amazon VPC 對等互連,允許從另一個端點的 Amazon VPC 端點進行存取,或 AWS Transit Gateway

不計費

計費

如需有關閘道端點的詳細資訊,請參閱AWS PrivateLink 指南中的閘道 Amazon VPC 端點

Amazon VPC 考量適用 AWS PrivateLink 於 Amazon DynamoDB。如需詳細資訊,請參閱《AWS PrivateLink 指南》中的界面端點考量事項AWS PrivateLink 配額。此外,適用下列限制。

AWS PrivateLink Amazon DynamoDB 不支援下列項目:

AWS PrivateLink 目前不支援 Amazon DynamoDB Streams 端點。

您每秒最多可以為啟用的每個 AWS PrivateLink 端點提交 50,000 個請求。

注意

AWS PrivateLink 端點的網路連線逾時不在 DynamoDB 錯誤回應的範圍內,因此必須由連線到端點的應用程式正確處理。 PrivateLink

建立 Amazon VPC 端點

若要建立 Amazon 虛擬私人雲端介面端點,請參閱指AWS PrivateLink 南中的建立 Amazon VPC 端點

存取 Amazon DynamoDB 界面端點

當您建立介面端點時,DynamoDB 會產生兩種特定端點的 DynamoDB DNS 名稱:區域和區域名稱。

  • 區域 DNS 名稱包括唯一的 Amazon VPC 端點識別碼、服務識別碼 AWS 區域、和名稱vpce.amazonaws.com中的。例如,對於 Amazon VPC 端點識別碼vpce-1a2b3c4d,產生的 DNS 名稱可能vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com與.

  • 地區 DNS 名稱包含可用區域,例如 vpce-1a2b3c4d-5e6f-us-east-1a.dynamodb.us-east-1.vpce.amazonaws.com。如果您的架構可隔離可用區域,則可以使用此選項。例如,您可以將其用於故障遏止或降低區域資料傳輸成本。

您可以從 DynamoDB 公用 DNS 網域解析端點特定的 DNS 名稱。

從 DynamoDB 介面端點存取表格並控制 API 作業

您可以使用 AWS CLI 或 AWS 開發套件存取 DynamoDB 資料表,並透過 DynamoDB 介面端點控制 API 作業。

若要透過 DynamoDB 介面端點在 AWS CLI 命令中存取 DynamoDB 表格或 DynamoDB 控制 API 作業,請使用和參數。--region --endpoint-url

範例:建立 VPC 端點

aws ec2 create-vpc-endpoint \ --region us-east-1 \ --service-name dynamodb-service-name \ --vpc-id client-vpc-id \ --subnet-ids client-subnet-id \ --vpc-endpoint-type Interface \ --security-group-ids client-sg-id

範例:修改 VPC 端點

aws ec2 modify-vpc-endpoint \ --region us-east-1 \ --vpc-endpoint-id client-vpc-endpoint-id \ --policy-document policy-document \ #example optional parameter --add-security-group-ids security-group-ids \ #example optional parameter # any additional parameters needed, see Privatelink documentation for more details

範例:使用端點 URL 列出資料表

在下列範例中,將 VPC 端點識別碼的區域us-east-1和 DNS 名稱取代為您自己vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com的資訊。

aws dynamodb --region us-east-1 —endpoint https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com list-tables

若要在使用開發套件時透過 DynamoDB 介面端點存取 DynamoDB 表格或 DynamoDB 控制 API 作業,請將您的 AWS 開發套件更新為最新版本。然後,將您的用戶端設定為使用端點 URL 透過 DynamoDB 介面端點存取表格或 DynamoDB 控制項 API 操作。

SDK for Python (Boto3)
範例:使用端點 URL 存取 DynamoDB 表格

在下列範例中,將區域 us-east-1 和 VPC 端點 ID https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com 取代為您的資訊。

ddb_client = session.client( service_name='dynamodb', region_name='us-east-1', endpoint_url='https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com' )
SDK for Java 1.x
範例:使用端點 URL 存取 DynamoDB 表格

在下列範例中,將區域 us-east-1 和 VPC 端點 ID https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com 取代為您的資訊。

//client build with endpoint config final AmazonDynamoDB dynamodb = AmazonDynamoDBClientBuilder.standard().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build();
SDK for Java 2.x
範例:使用端點 URL 存取 S3 儲存貯體

在下列範例中,以您自己的資訊取代區域 us-east-1 和 VPC 人雲端端點識別碼 https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com。

Region region = Region.US_EAST_1; dynamoDbClient = DynamoDbClient.builder().region(region) .endpointOverride(URI.create("https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com")) .build()

更新內部部署 DNS 組態

使用端點特定的 DNS 名稱存取 DynamoDB 的介面端點時,您不需要更新內部部署 DNS 解析器。您可以從公用 DynamoDB DNS 網域使用介面端點的私人 IP 位址來解析端點特定的 DNS 名稱。

使用介面端點存取 DynamoDB,而不需要 Amazon VPC 中的閘道端點或網際網路閘道

Amazon VPC 中的界面端點可以透過 Amazon 網路將 Amazon 內 VPC 人雲端應用程式和現場部署應用程式路由到 DynamoDB,如下圖所示。

顯示從現場部署和 Amazon 內 VPC 應用程式存取 DynamoDB 的資料流程圖;透過使用介面端點和. AWS PrivateLink

此圖展示了以下要點:

  • 您的現場部署網路使 AWS VPN 用 AWS Direct Connect 或連接到 Amazon VPC A.

  • 您的現場部署和 Amazon VPC A 中的應用程式會使用端點特定的 DNS 名稱,透過 DynamoDB 介面端點存取 DynamoDB。

  • 現場部署應用程式透過 AWS Direct Connect (或 AWS VPN) 將資料傳送到 Amazon VPC 中的介面端點。 AWS PrivateLink 透過網路將資料從介面端點移至 DynamoDB。 AWS

  • Amazon 中的 VPC 應用程式也會將流量傳送到介面端點。 AWS PrivateLink 透過網路將資料從介面端點移至 DynamoDB。 AWS

使用閘道端點並將端點連接在同一個 Amazon VPC 中,以存取 DynamoDB

您可以建立界面端點,並將現有閘道端點保留在相同的 Amazon VPC 中,如下圖所示。透過採用此方法,您可以允許 Amazon 內 VPC 人雲端應用程式繼續透過閘道端點存取 DynamoDB,但不會計費。然後,只有您的內部部署應用程式會使用介面端點來存取 DynamoDB。 若要以這種方式存取 DynamoDB,您必須更新內部部署應用程式,以使用 DynamoDB 的端點特定 DNS 名稱。

顯示透過將閘道端點和連接端點一起使用對 DynamoDB 存取的資料流程圖。

此圖展示了以下要點:

  • 現場部署應用程式使用端點特定的 DNS 名稱,透過 AWS Direct Connect (或) 將資料傳送到 Amazon VPC 內的介面端點。 AWS VPN AWS PrivateLink 透過網路將資料從介面端點移至 DynamoDB。 AWS

  • Amazon 內 VPC 應用程式會使用預設的區域 DynamoDB 名稱,將資料傳送到透過網路連線到 DynamoDB 的閘道端點。 AWS

如需有關閘道端點的詳細資訊,請參閱 Amazon VPC 使用者指南中的閘道 Amazon VPC 端點

為 DynamoDB 建立 Amazon VPC 私人雲端端點政策

您可以將端點政策附加到 Amazon VPC 端點,以控制對 DynamoDB 的存取。此政策會指定下列資訊:

  • 可以執行動作的 AWS Identity and Access Management (IAM) 主體

  • 可執行的動作

  • 可在其中執行動作的資源

您可以建立端點策略,限制只能存取特定 DynamoDB 表格。如果您的 Amazon VPC AWS 服務 中有其他使用表格的政策,則此類型的政策非常有用。下表原則限制只能存取. DOC-EXAMPLE-TABLE 若要使用此端點策略,請DOC-EXAMPLE-TABLE以資料表的名稱取代。

{ "Version": "2012-10-17", "Id": "Policy1216114807515", "Statement": [ { "Sid": "Access-to-specific-table-only", "Principal": "*", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem" ], "Effect": "Allow", "Resource": ["arn:aws:dynamodb:::DOC-EXAMPLE-TABLE", "arn:aws:dynamodb:::DOC-EXAMPLE-TABLE/*"] } ] }