Amazon DynamoDB 的閘道端點 - Amazon Virtual Private Cloud

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

Amazon DynamoDB 的閘道端點

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

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

DynamoDB 同時支援閘道端點和介面端點。使用閘道端點,您可以從 VPC 存取 DynamoDB,無需 VPC 的網際網路閘道或 NAT 裝置,也無需額外費用。不過,閘道端點不允許從內部部署網路、其他 AWS 區域中的對等 VPCs 或透過傳輸閘道進行存取。這些情況下,您必須利用介面端點 (需額外付費)。如需詳細資訊,請參閱《Amazon DynamoDB 開發人員指南》中的 DynamoDB VPC 端點類型 DynamoDB

考量事項

  • 閘道端點只能在您建立該端點的區域中使用。請務必在與 DynamoDB 資料表相同的區域中建立閘道端點。

  • 如果您使用的是 Amazon DNS 伺服器,則必須同時啟用 VPC 的 DNS 主機名稱和 DNS 解析。如果您使用自己的 DNS 伺服器,請確保對 DynamoDB 提出的請求可正確解析為 AWS所維護的 IP 地址。

  • 對於透過閘道端點存取 DynamoDB 的執行個體,安全群組的規則必須允許進出 DynamoDB 的流量。您可以在安全群組規則中參照 DynamoDB 的字首清單 ID。

  • 對於透過閘道端點存取 DynamoDB 的執行個體,子網路的網路 ACL 必須允許進出 DynamoDB 的流量。您無法在網路 ACL 規則中參照字首清單,但可以從 DynamoDB 的字首清單中取得 DynamoDB 的 IP 地址範圍。

  • 如果您使用 AWS CloudTrail 記錄 DynamoDB 操作,日誌檔案會包含服務消費者 VPC 中 EC2 執行個體的私有 IP 地址,以及透過端點執行的任何請求的閘道端點 ID。

  • 閘道端點僅支援 IPv4 流量。

  • 受影響子網中執行個體的來源 IPv4 地址會從公有 IPv4 地址變更為 VPC 中的私有 IPv4 地址。端點會切換網路路由,以及中斷開啟的 TCP 連線。使用公有 IPv4 地址的先前連線不會繼續。建議您在建立或修改閘道端點時不要執行重要任務。或者,測試以確保您的軟體可在連線中斷時自動重新連線至 DynamoDB。

  • 端點連線不能延伸出 VPC。VPN 連線、VPC 對等互連連線、傳輸閘道或 VPC 中 AWS Direct Connect 連線的另一端資源,無法使用閘道端點與 DynamoDB 通訊。

  • 您的帳戶對於每個區域的預設配額為 20 個閘道端點,此配額可進行調整。每個 VPC 也有 255 個閘道端點的限制。

建立閘道端點

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

使用主控台建立閘道端點
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中選擇 Endpoints (端點)

  3. 選擇建立端點

  4. 對於 Service category (服務類別),選擇 AWS 服務

  5. 針對服務,新增篩選條件類型 = Gateway,然後選取 com.amazonaws.region.dynamodb

  6. 針對 VPC,選取要在其中建立端點的 VPC。

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

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

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

  10. 選擇建立端點

若要使用命令列建立閘道端點

使用 IAM 政策控制存取

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

範例:限制特定端點的存取

您可以使用 aws:sourceVpce 條件金鑰,建立政策來限制對特定 VPC 端點的存取。除非使用指定的 VPC 端點,否則下列政策會拒絕存取帳戶中的 DynamoDB 資料表。此示例假定還有一個政策聲明,允許您的使用案例所需的存取權限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-from-specific-endpoint", "Effect": "Deny", "Principal": "*", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:region:account-id:table/*", "Condition": { "StringNotEquals" : { "aws:sourceVpce": "vpce-11aa22bb" } } } ] }
範例:允許來自特定 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" } } } ] }
範例:允許來自特定帳戶的存取

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

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

關聯路由表

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

若要使用主控台來關聯路由表
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中選擇 Endpoints (端點)

  3. 選取閘道端點。

  4. 選擇 Actions (動作)Manage route tables (管理路由表)

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

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

若要使用命令列來關聯路由表

編輯 VPC 端點政策

您可以編輯閘道端點的端點政策,以控制從 VPC 透過端點對 DynamoDB 的存取。預設政策允許完整存取。如需詳細資訊,請參閱端點政策

若要使用主控台變更端點政策
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中選擇 Endpoints (端點)

  3. 選取閘道端點。

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

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

  6. 選擇 Save (儲存)。

若要使用命令列修改閘道端點

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

範例:允許唯讀存取權

您可以建立將存取限制為唯讀存取的政策。下列政策會授予許可,以列出和描述 DynamoDB 資料表。

{ "Statement": [ { "Sid": "ReadOnlyAccess", "Effect": "Allow", "Principal": "*", "Action": [ "dynamodb:DescribeTable", "dynamodb:ListTables" ], "Resource": "*" } ] }
範例:限制特定資料表的存取

您可以建立原則,限制特定 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" } ] }

刪除閘道端點

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

若要使用主控台刪除閘道端點
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中選擇 Endpoints (端點)

  3. 選取閘道端點。

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

  5. 出現確認提示時,請按一下 delete

  6. 選擇 刪除

若要使用命令列刪除閘道端點