

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

# AWS PrivateLink 適用於 DynamoDB Streams
<a name="privatelink-streams"></a>

使用 AWS PrivateLink for Amazon DynamoDB Streams，您可以在虛擬私有雲端 (Amazon VPC) 中佈建介面 Amazon VPC 端點 （介面端點）。這些端點可直接透過 VPN 和內部部署的應用程式存取 Direct Connect，或 AWS 區域 是透過 Amazon VPC 對等互連的不同應用程式存取。使用 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 連線至內部部署網路的詳細資訊，請參閱 [https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)和 [https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)。

如需介面端點的一般資訊，請參閱 [Amazon VPC 介面端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) (AWS PrivateLink)。

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

**Topics**
+ [使用 AWS PrivateLink for Amazon DynamoDB Streams 時的考量事項](#privatelink-streams-considerations)
+ [建立 Amazon VPC 端點](#privatelink-streams-vpc-endpoint)
+ [存取 Amazon DynamoDB Streams 介面端點](#privatelink-streams-accessing-ddb-interface-endpoints)
+ [從 DynamoDB Streams 介面端點存取 DynamoDB Streams API 操作](#privatelink-streams-accessing-api-operations-from-interface-endpoints)
+ [AWS 開發套件範例](#privatelink-streams-aws-sdk-examples)
+ [為 DynamoDB Streams 建立 Amazon VPC 端點政策](#privatelink-streams-creating-vpc-endpoint-policy)
+ [搭配 AWS 管理主控台 私有存取使用 DynamoDB 端點](#ddb-streams-endpoints-private-access)

## 使用 AWS PrivateLink for Amazon DynamoDB Streams 時的考量事項
<a name="privatelink-streams-considerations"></a>

Amazon VPC 考量適用於 AWS PrivateLink Amazon DynamoDB Streams。如需詳細資訊，請參閱[介面端點考量事項](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)與 [AWS PrivateLink 配額](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html)。適用以下限制。

AWS PrivateLink for Amazon DynamoDB Streams 不支援下列項目：
+ Transport Layer Security (TLS) 1.1
+ 私有與混合網域名稱系統 (DNS) 服務

**重要**  
請勿建立私有託管區域來覆寫 DynamoDB Streams 端點 DNS 名稱，以將流量路由到您的介面端點。DynamoDB DNS 組態可能會隨著時間而變更，而自訂 DNS 覆寫可能會導致請求意外透過公有 IP 地址路由，而不是您的介面端點。  
 若要透過 存取 DynamoDB Streams AWS PrivateLink，請將您的用戶端設定為直接使用 Amazon VPC 端點 URL （例如 `https://vpce-1a2b3c4d-5e6f.streams.dynamodb.region.vpce.amazonaws.com`)。

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

## 建立 Amazon VPC 端點
<a name="privatelink-streams-vpc-endpoint"></a>

若要建立 Amazon VPC 介面端點，請參閱 *AWS PrivateLink 指南*中的[建立 Amazon VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)。

## 存取 Amazon DynamoDB Streams 介面端點
<a name="privatelink-streams-accessing-ddb-interface-endpoints"></a>

建立介面端點時，DynamoDB 會產生兩種類型的專用 DynamoDB Streams DNS 名稱：*區域*和*可用區*。
+ *區域* DNS 名稱在其名稱`vpce.amazonaws.com`中包含唯一的 Amazon VPC 端點 ID、服務識別符 AWS 區域、 和 。例如，對於 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`。如果您的架構可隔離可用區域，則可以使用此選項。例如，您可以將其用於故障遏止或降低區域資料傳輸成本。

## 從 DynamoDB Streams 介面端點存取 DynamoDB Streams API 操作
<a name="privatelink-streams-accessing-api-operations-from-interface-endpoints"></a>

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

### AWS CLI 範例
<a name="privatelink-streams-aws-cli-examples"></a>

若要透過 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 開發套件範例
<a name="privatelink-streams-aws-sdk-examples"></a>

若要在使用 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()
```

------

## 為 DynamoDB Streams 建立 Amazon VPC 端點政策
<a name="privatelink-streams-creating-vpc-endpoint-policy"></a>

您可以將端點政策附加至 Amazon VPC 端點，以控制對 DynamoDB Streams 的存取。此政策會指定下列資訊：
+ 可執行動作的 AWS Identity and Access Management (IAM) 委託人 
+ 可執行的動作 
+ 可在其中執行動作的資源 

**Topics**
+ [範例：限制從 Amazon VPC 端點存取特定串流](#privatelink-streams-example-restrict-access-to-bucket)

### 範例：限制從 Amazon VPC 端點存取特定串流
<a name="privatelink-streams-example-restrict-access-to-bucket"></a>

您可以建立端點政策，以限制僅存取特定的 DynamoDB Streams。如果您的 Amazon VPC AWS 服務 中有使用 DynamoDB Streams 的其他 ，這種類型的政策很有用。下列串流政策限制僅能存取附加至 `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 管理主控台 私有存取使用 DynamoDB 端點
<a name="ddb-streams-endpoints-private-access"></a>

在 [AWS 管理主控台 私有存取](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/console-private-access.html)中使用 VPC 端點搭配 [DynamoDB 主控台](https://console.aws.amazon.com/dynamodb)時，您必須設定 DynamoDB 與 DynamoDB Streams 的 DNS 組態。

若要將 DynamoDB 設定為可在 AWS 管理主控台 私有存取中存取，您必須建立下列兩個 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`。