AWS PrivateLink 適用於 DynamoDB - Amazon DynamoDB

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

AWS PrivateLink 適用於 DynamoDB

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

位於 VPC 中的應用程式無需公有 IP 位址,即可透過 VPC 介面端點與 DynamoDB 進行操作通訊。介面端點由一或多個彈性網路介面 (ENI) 所組成,這些介面會從 Amazon VPC 的子網路中指派私有 IP 位址。透過介面端點傳送至 DynamoDB 的請求會保留在 Amazon 網路內。您也可以透過 AWS Direct Connect 或 AWS Virtual Private Network (),從內部部署應用程式存取 Amazon VPC 中的介面端點Site-to-Site VPN。如需如何將 Amazon VPC 與內部部署網路連線的詳細資訊,請參閱《Direct Connect 使用者指南》與《AWS Site-to-Site VPN 使用者指南》。

如需介面端點的一般資訊,請參閱《 指南》中的介面 Amazon VPC 端點 (AWS PrivateLink)。Amazon DynamoDB Streams 端點 AWS PrivateLink 也支援 。 AWS PrivateLink 如需詳細資訊,請參閱AWS PrivateLink 適用於 DynamoDB Streams

適用於 Amazon DynamoDB 的 Amazon VPC 端點類型

您可以使用兩種類型的 Amazon VPC 端點來存取 Amazon DynamoDB:閘道端點介面端點 (使用 AWS PrivateLink)。閘道端點是您在路由表中指定的閘道,可透過 AWS 網路從 Amazon VPC 存取 DynamoDB。介面端點使用私有 IP 地址,透過使用 Amazon VPC 對等互連或 ,將請求從 Amazon VPC 內部、內部部署或另一個 Amazon VPC 路由至 DynamoDB, AWS 區域 藉此擴充閘道端點的功能 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 for Amazon DynamoDB 不支援下列項目:

  • Transport Layer Security (TLS) 1.1

  • 私有與混合網域名稱系統 (DNS) 服務

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

注意

AWS PrivateLink 端點的網路連線逾時不在 DynamoDB 錯誤回應範圍內,需要由連線至 PrivateLink 端點的應用程式妥善處理。

建立 Amazon VPC 端點

若要建立 Amazon VPC 介面端點,請參閱《AWS PrivateLink 指南》中的建立 Amazon VPC 端點

存取 Amazon DynamoDB 介面端點

建立介面端點時,DynamoDB 會產生兩種類型的專用 DynamoDB DNS 名稱:區域可用區

  • 區域 DNS 名稱在其名稱vpce.amazonaws.com中包含唯一的 Amazon VPC 端點 ID、服務識別符 AWS 區域、 和 。例如,對於 Amazon VPC 端點 ID 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 介面端點存取 DynamoDB 資料表及控制 API 操作

您可以使用 AWS CLI AWS SDKs來存取 DynamoDB 資料表,並透過 DynamoDB 介面端點控制 API 操作。

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

範例:建立 VPC 端點

aws ec2 create-vpc-endpoint \ --region us-east-1 \ --service-name com.amazonaws.us-east-1.dynamodb \ --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 列出資料表

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

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

若要在使用 AWS SDKs 時透過 DynamoDB 介面端點存取 DynamoDB 資料表或 DynamoDB 控制 API 操作,請將 SDKs更新至最新版本。 DynamoDB 接著,設定您的用戶端使用端點 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 存取 DynamoDB 資料表

在下列範例中,將區域 us-east-1 和 VPC 端點 ID 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 名稱。

在 Amazon VPC 中,使用介面端點即可存取 DynamoDB,無需閘道端點或網際網路閘道。

您的 Amazon VPC 中的介面端點可透過 Amazon 網路,將 VPC 內及內部部署應用程式路由至 DynamoDB,如下圖所示。

資料流程圖顯示了內部部署與 VPC 內應用程式如何使用介面端點和 AWS PrivateLink存取 DynamoDB。

此圖展示了以下要點:

  • 您的內部部署網路會使用 Direct Connect 或 Site-to-Site VPN 連線到 Amazon VPC A。

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

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

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

在同一個 Amazon VPC 中,同時使用閘道端點與介面端點來存取 DynamoDB。

您可以在同一個 Amazon VPC 中建立介面端點,並保留現有的閘道端點,如下圖所示。採用此方式後,VPC 內應用程式可繼續透過閘道端點存取 DynamoDB,且無需付費。之後,僅內部部署應用程式會使用介面端點存取 DynamoDB。若要這樣存取,必須更新內部部署應用程式以使用 DynamoDB 的端點特定 DNS 名稱。

資料流程圖顯示如何同時使用閘道端點與介面端點存取 DynamoDB。

此圖展示了以下要點:

  • 內部部署應用程式使用端點特定的 DNS 名稱,透過 Direct Connect (或 Site-to-Site VPN) 將資料從介面端點 AWS PrivateLink 移至 AWS DynamoDB。

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

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

為 DynamoDB 建立 Amazon VPC 端點政策

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

  • 可執行動作的 AWS Identity and Access Management (IAM) 委託人

  • 可執行的動作

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

您可以建立端點政策,以限制僅能存取特定的 DynamoDB 資料表。如果您在 Amazon VPC AWS 服務 中有使用資料表的其他 ,這種類型的政策會很有用。下列資料表政策僅允許存取 DOC-EXAMPLE-TABLE。若要使用此端點政策,請將 DOC-EXAMPLE-TABLE 取代為您的資料表名稱。

JSON
{ "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:us-east-1:111122223333:table/DOC-EXAMPLE-TABLE", "arn:aws:dynamodb:us-east-1:111122223333:table/DOC-EXAMPLE-TABLE/*"] } ] }

在 AWS 管理主控台 私有存取中使用 DynamoDB 端點

AWS 管理主控台 私有存取中使用 VPC 端點搭配 DynamoDB 主控台時,您必須設定 DynamoDB 與 DynamoDB Streams 的 DNS 組態。

若要將 DynamoDB 設定為可在 AWS 管理主控台 Private Access 中存取,您必須建立下列兩個 VPC 端點:

  • com.amazonaws.<region>.dynamodb

  • com.amazonaws.<region>.dynamodb-streams

建立 VPC 端點時,請前往 Route 53 主控台,使用區域端點 dynamodb.us-east-1.amazonaws.com 為 DynamoDB 建立私有託管區域。

在私有託管區域中建立以下兩筆別名記錄:

  • dynamodb.<region>.amazonaws.com:將流量導向至 VPC 端點 com.amazonaws.<region>.dynamodb

  • streams.dynamodb.<region>.amazonaws.com:將流量導向至 VPC 端點 com.amazonaws.<region>.dynamodb-streams