

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

# Amazon DynamoDB 的閘道端點
<a name="vpc-endpoints-ddb"></a>

您可以使用閘道 VPC 端點從 VPC 中存取 Amazon DynamoDB。建立閘道端點後，您可以將其新增為路由表中的目標，用於從 VPC 到 DynamoDB 的流量。

使用閘道端點不需額外付費。

DynamoDB 同時支援閘道端點和介面端點。使用閘道端點，您可以從 VPC 存取 DynamoDB，無需 VPC 的網際網路閘道或 NAT 裝置，也無需額外費用。不過，閘道端點不允許從內部部署網路、其他 AWS 區域中的對等 VPCs 或透過傳輸閘道進行存取。這些情況下，您必須利用介面端點 (需額外付費)。如需詳細資訊，請參閱《Amazon [ DynamoDB 開發人員指南》中的 DynamoDB 的 VPC 端點類型](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-ddb)。 * DynamoDB *

**Topics**
+ [

## 考量事項
](#gateway-endpoint-considerations-ddb)
+ [

## 建立閘道端點
](#create-gateway-endpoint-ddb)
+ [

## 使用 IAM 政策控制存取
](#iam-policies-ddb)
+ [

## 關聯路由表
](#associate-route-tables-ddb)
+ [

## 編輯 VPC 端點政策
](#edit-vpc-endpoint-policy-ddb)
+ [

## 刪除閘道端點
](#delete-gateway-endpoint-ddb)

## 考量事項
<a name="gateway-endpoint-considerations-ddb"></a>
+ 閘道端點只能在您建立該端點的區域中使用。請務必在與 DynamoDB 資料表相同的區域中建立閘道端點。
+ 如果您使用的是 Amazon DNS 伺服器，則必須同時啟用 VPC 的 [DNS 主機名稱和 DNS 解析](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating)。如果您使用自己的 DNS 伺服器，請確保對 DynamoDB 提出的請求可正確解析為 AWS所維護的 IP 地址。
+ 對於透過閘道端點存取 DynamoDB 的執行個體，安全群組的規則必須允許進出 DynamoDB 的流量。您可以在安全群組規則中參照 DynamoDB 的[字首清單](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html) ID。
+ 對於透過閘道端點存取 DynamoDB 的執行個體，子網路的網路 ACL 必須允許進出 DynamoDB 的流量。您無法在網路 ACL 規則中參照字首清單，但可以從 DynamoDB 的[字首清單](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)中取得 DynamoDB 的 IP 地址範圍。
+ 如果您使用 AWS CloudTrail 記錄 DynamoDB 操作，日誌檔案會包含服務消費者 VPC 中 EC2 執行個體的私有 IP 地址，以及透過端點執行之任何請求的閘道端點 ID。
+ 閘道端點僅支援 IPv4 流量。
+ 受影響子網中執行個體的來源 IPv4 地址會從公有 IPv4 地址變更為 VPC 中的私有 IPv4 地址。端點會切換網路路由，以及中斷開啟的 TCP 連線。使用公有 IPv4 地址的先前連線不會繼續。建議您在建立或修改閘道端點時不要執行重要任務。或者，測試以確保您的軟體可在連線中斷時自動重新連線至 DynamoDB。
+ 端點連線不能延伸出 VPC。VPN 連接、VPC 對等互連、傳輸閘道或 VPC 中 Direct Connect 連線另一端的資源無法使用閘道端點與 DynamoDB 通訊。
+ 您的帳戶對於每個區域的預設配額為 20 個閘道端點，此配額可進行調整。每個 VPC 也有 255 個閘道端點的限制。

## 建立閘道端點
<a name="create-gateway-endpoint-ddb"></a>

使用下列程序建立連線至 DynamoDB 的閘道端點。

**使用主控台建立閘道端點**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中選擇 **Endpoints (端點)**。

1. 選擇**建立端點**。

1. 對於 **Service category** (服務類別)，選擇 **AWS 服務**。

1. 針對**服務**，新增篩選條件**類型 = Gateway**，然後選取 **com.amazonaws.***region***.dynamodb**。

1. 針對 **VPC**，選取要在其中建立端點的 VPC。

1. 針對 **Route tables** (路由表)，選取要供端點使用的路由表。我們會自動新增路由，將以服務為目標的流量指向端點網路介面。

1. 對於 **Policy** (政策)，選取 **Full access** (完整存取)，以允許 VPC 端點上所有資源的所有主體進行所有操作。否則，選取 **Custom** (自訂)，連接 VPC 端點政策，該政策控制主體必須在 VPC 端點上對資源執行操作的權限。

1. (選用) 若要新增標籤，請選擇 **Add new tag (新增標籤)**，然後輸入標籤的鍵和值。

1. 選擇**建立端點**。

**若要使用命令列建立閘道端點**
+ [create-vpc-endpoint](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc-endpoint.html) (AWS CLI)
+ [New-EC2VpcEndpoint](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2VpcEndpoint.html) (Tools for Windows PowerShell)

## 使用 IAM 政策控制存取
<a name="iam-policies-ddb"></a>

您可以建立 IAM 政策，以控制哪些 IAM 主體可以使用特定 VPC 端點存取 DynamoDB 資料表。

**Example 範例：限制特定端點的存取**  
您可以使用 [aws:sourceVpce](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpce) 條件金鑰，建立政策來限制對特定 VPC 端點的存取。除非使用指定的 VPC 端點，否則下列政策會拒絕存取帳戶中的 DynamoDB 資料表。此示例假定還有一個政策聲明，允許您的使用案例所需的存取權限。    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "Allow-access-from-specific-endpoint",
         "Effect": "Deny",
         "Principal": "*",
         "Action": "dynamodb:*",
         "Resource": "arn:aws:dynamodb:us-east-1:111111111111:table/*",
         "Condition": { 
            "StringNotEquals" : { 
               "aws:sourceVpce": "vpce-11aa22bb" 
            } 
         }
      }
   ]
}
```

**Example 範例：允許來自特定 IAM 角色的存取**  
您可以建立允許使用特定 IAM 角色進行存取的政策。下列政策會授予存取指定的 IAM 角色。    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "Allow-access-from-specific-IAM-role",
         "Effect": "Allow",
         "Principal": "*",
         "Action": "*",
         "Resource": "*",
         "Condition": {
            "ArnEquals": {
               "aws:PrincipalArn": "arn:aws:iam::111122223333:role/role_name"
            }
         }
      }
   ]
}
```

**Example 範例：允許來自特定帳戶的存取**  
您可以建立僅允許從特定帳戶進行存取的政策。下列政策會對指定帳戶中的使用者授予存取權。    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "Allow-access-from-account",
         "Effect": "Allow",
         "Principal": "*",
         "Action": "*",
         "Resource": "*",
         "Condition": {
            "StringEquals": {
               "aws:PrincipalAccount": "111122223333"
            }
         }
      }
   ]        
}
```

## 關聯路由表
<a name="associate-route-tables-ddb"></a>

您可變更與閘道端點關聯的路由表。當您關聯路由表時，我們會自動新增路由，將以服務為目標的流量指向端點網路介面。當您取消路由表的關聯時，我們會自動從路由表中移除端點路由。

**若要使用主控台來關聯路由表**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中選擇 **Endpoints (端點)**。

1. 選取閘道端點。

1. 選擇 **Actions (動作)**、**Manage route tables (管理路由表)**。

1. 視需要選取或取消選取路由表。

1. 選擇 **Modify route tables** (修改路由表)。

**若要使用命令列來關聯路由表**
+ [modify-vpc-endpoint](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint.html) (AWS CLI)
+ [Edit-EC2VpcEndpoint](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2VpcEndpoint.html) (Tools for Windows PowerShell)

## 編輯 VPC 端點政策
<a name="edit-vpc-endpoint-policy-ddb"></a>

您可以編輯閘道端點的端點政策，以控制從 VPC 透過端點對 DynamoDB 的存取。更新端點政策後，變更生效需費時幾分鐘。預設政策允許完整存取。如需詳細資訊，請參閱[端點政策](vpc-endpoints-access.md)。

**若要使用主控台變更端點政策**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中選擇 **Endpoints (端點)**。

1. 選取閘道端點。

1. 選擇 **Actions** (動作)、**Manage policy** (管理政策)。

1. 選擇 **Full Access** (完整存取) 以允許完整存取服務，或選擇 **Custom** (自訂) 並連接自訂政策。

1. 選擇**儲存**。

**若要使用命令列修改閘道端點**
+ [modify-vpc-endpoint](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint.html) (AWS CLI)
+ [Edit-EC2VpcEndpoint](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2VpcEndpoint.html) (Tools for Windows PowerShell)

下列範例端點原則用於存取 DynamoDB。

**Example 範例：允許唯讀存取權**  
您可以建立將存取限制為唯讀存取的政策。下列政策會授予許可，以列出和描述 DynamoDB 資料表。  

```
{
  "Statement": [
    {
      "Sid": "ReadOnlyAccess",
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
        "dynamodb:DescribeTable",
        "dynamodb:ListTables"
      ],
      "Resource": "*"
    }
  ]
}
```

**Example 範例：限制特定資料表的存取**  
您可以建立原則，限制特定 DynamoDB 資料表的存取。下列政策允許存取指定的 DynamoDB 資料表。  

```
{
  "Statement": [
    {
      "Sid": "Allow-access-to-specific-table",
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
        "dynamodb:Batch*",
        "dynamodb:Delete*",
        "dynamodb:DescribeTable",
        "dynamodb:GetItem",
        "dynamodb:PutItem",
        "dynamodb:Update*"
      ],
      "Resource": "arn:aws:dynamodb:region:123456789012:table/table_name"
    }
  ]
}
```

## 刪除閘道端點
<a name="delete-gateway-endpoint-ddb"></a>

閘道端點結束使用後即可刪除。當您刪除閘道端點時，我們會從子網路由表中移除端點路由。

**若要使用主控台刪除閘道端點**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中選擇 **Endpoints (端點)**。

1. 選取閘道端點。

1. 選擇 **Actions** (動作)、**Delete VPC endpoints** (刪除 VPC 端點)。

1. 出現確認提示時，請按一下 **delete**。

1. 選擇 **刪除**。

**若要使用命令列刪除閘道端點**
+ [delete-vpc-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-vpc-endpoints.html) (AWS CLI)
+ [Remove-EC2VpcEndpoint](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2VpcEndpoint.html) (Tools for Windows PowerShell)