AWS PrivateLink 適用於 DynamoDB Streams - Amazon DynamoDB

AWS PrivateLink 適用於 DynamoDB Streams

使用 AWS PrivateLink 適用於 Amazon DynamoDB Streams,您可以在虛擬私有雲 (Amazon VPC) 中佈建介面 VPC 端點 (interface endpoint)。這些端點可供內部部署應用程式透過 VPN 與 Direct Connect,或不同 AWS 區域 間的 Amazon VPC peering 直接存取。使用 AWS PrivateLink 及介面端點,可簡化應用程式與 DynamoDB Streams 間的私有網路連線。

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

如需介面端點的一般資訊,請參閱 Amazon VPC 介面端點 (AWS PrivateLink)。

注意

DynamoDB Streams 僅支援介面端點。不支援閘道端點。

Amazon VPC 的考量同樣適用於 AWS PrivateLink 適用於 Amazon DynamoDB Streams。如需詳細資訊,請參閱介面端點考量事項AWS PrivateLink 配額。適用以下限制。

AWS PrivateLink 適用於 Amazon DynamoDB Streams 不支援以下項目:

  • Transport Layer Security (TLS) 1.1

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

注意

AWS PrivateLink 端點的網路連線逾時不屬於 DynamoDB Streams 錯誤回應範圍,應由連線至 AWS PrivateLink 端點的應用程式適當處理。

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

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

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

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

您可以使用 AWS CLI 或 AWS SDK,透過 DynamoDB Streams 介面端點存取 DynamoDB Streams API 操作。

若要在 AWS CLI 指令中透過 DynamoDB Streams 介面端點存取 DynamoDB Streams 或 API 操作,請使用 --region--endpoint-url 參數。

範例:建立 VPC 端點

aws ec2 create-vpc-endpoint \ --region us-east-1 \ --service-name com.amazonaws.us-east-1.dynamodb-streams \ --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.streams.dynamodb.us-east-1.vpce.amazonaws.com 的 DNS 名稱。

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

若要在使用 AWS SDK 時,透過 DynamoDB Streams 介面端點存取 Amazon DynamoDB Streams API 操作,請將 SDK 更新至最新版本。然後,將用戶端設定為透過 DynamoDB Streams 介面端點,使用 DynamoDB Streams API 操作的端點 URL。

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

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

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

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

//client build with endpoint config final AmazonDynamoDBStreams dynamodbstreams = AmazonDynamoDBStreamsClientBuilder.standard().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://vpce-1a2b3c4d-5e6f.streams.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.streams.dynamodb.us-east-1.vpce.amazonaws.com 取代為您的資訊。

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

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

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

  • 可執行的動作

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

您可以建立端點政策,以限制僅存取特定的 DynamoDB Streams。若您的 Amazon VPC 中有其他使用 DynamoDB Streams 的 AWS 服務,此類政策會很有用。下列串流政策限制僅能存取附加至 DOC-EXAMPLE-TABLE 的串流 2025-02-20T11:22:33.444。若要使用此端點政策,請將 DOC-EXAMPLE-TABLE 取代為資料表名稱,並將 2025-02-20T11:22:33.444 取代為串流標籤。

JSON
{ "Version":"2012-10-17", "Id": "Policy1216114807515", "Statement": [ { "Sid": "Access-to-specific-stream-only", "Principal": "*", "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords" ], "Effect": "Allow", "Resource": ["arn:aws:dynamodb:us-east-1:111122223333:table/table-name/stream/2025-02-20T11:22:33.444"] } ] }
注意

DynamoDB Streams 不支援閘道端點。

在 AWS Management Console 私有存取中使用 DynamoDB 端點

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

若要讓 DynamoDB 可在 AWS Management Console 私有存取環境中使用,請建立以下兩個 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