本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 的閘道端點。
使用主控台建立閘道端點
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中選擇 Endpoints (端點)。
-
選擇建立端點。
-
對於 Service category (服務類別),選擇 AWS 服務。
-
針對服務,新增篩選條件類型 = Gateway,然後選取 com.amazonaws.
region
.dynamodb。 -
針對 VPC,選取要在其中建立端點的 VPC。
-
針對 Route tables (路由表),選取要供端點使用的路由表。我們會自動新增路由,將以服務為目標的流量指向端點網路介面。
-
對於 Policy (政策),選取 Full access (完整存取),以允許 VPC 端點上所有資源的所有主體進行所有操作。否則,選取 Custom (自訂),連接 VPC 端點政策,該政策控制主體必須在 VPC 端點上對資源執行操作的權限。
-
(選用) 若要新增標籤,請選擇 Add new tag (新增標籤),然後輸入標籤的鍵和值。
-
選擇建立端點。
若要使用命令列建立閘道端點
-
create-vpc-endpoint
(AWS CLI) -
New-EC2VpcEndpoint (Tools for Windows PowerShell)
使用 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
" } } } ] }
關聯路由表
您可變更與閘道端點關聯的路由表。當您關聯路由表時,我們會自動新增路由,將以服務為目標的流量指向端點網路介面。當您取消路由表的關聯時,我們會自動從路由表中移除端點路由。
若要使用主控台來關聯路由表
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中選擇 Endpoints (端點)。
-
選取閘道端點。
-
選擇 Actions (動作)、Manage route tables (管理路由表)。
-
視需要選取或取消選取路由表。
-
選擇 Modify route tables (修改路由表)。
若要使用命令列來關聯路由表
-
modify-vpc-endpoint
(AWS CLI) -
Edit-EC2VpcEndpoint (Tools for Windows PowerShell)
編輯 VPC 端點政策
您可以編輯閘道端點的端點政策,以控制從 VPC 透過端點對 DynamoDB 的存取。預設政策允許完整存取。如需詳細資訊,請參閱端點政策。
若要使用主控台變更端點政策
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中選擇 Endpoints (端點)。
-
選取閘道端點。
-
選擇 Actions (動作)、Manage policy (管理政策)。
-
選擇 Full Access (完整存取) 以允許完整存取服務,或選擇 Custom (自訂) 並連接自訂政策。
-
選擇 Save (儲存)。
若要使用命令列修改閘道端點
-
modify-vpc-endpoint
(AWS CLI) -
Edit-EC2VpcEndpoint (Tools for Windows PowerShell)
下列範例端點原則用於存取 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
" } ] }
刪除閘道端點
閘道端點結束使用後即可刪除。當您刪除閘道端點時,我們會從子網路由表中移除端點路由。
若要使用主控台刪除閘道端點
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中選擇 Endpoints (端點)。
-
選取閘道端點。
-
選擇 Actions (動作)、Delete VPC endpoints (刪除 VPC 端點)。
-
出現確認提示時,請按一下
delete
。 -
選擇 刪除 。
若要使用命令列刪除閘道端點
-
delete-vpc-endpoints
(AWS CLI) -
Remove-EC2VpcEndpoint (Tools for Windows PowerShell)