本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
适用于 Amazon DynamoDB 的网关端点
您可以使用网关 VPC 端点从 VPC 访问 Amazon DynamoDB。创建网关端点后,您可以将其添加为路由表中的目标,用于从您的 VPC 流向 DynamoDB 的流量。
使用网关端点不会发生任何额外费用。
DynamoDB 同时支持网关终端节点和接口终端节点。使用网关终端节点,您可以从您的 VPC 访问 DynamoDB,无需为 VPC 使用互联网网关或 NAT 设备,也无需支付额外费用。但是,网关终端节点不允许从本地网络、其他 AWS 区域的对等 VPC 或通过传输网关进行访问。对于这些场景,您必须使用接口端点,后者需要额外付费。有关更多信息,请参阅《亚马逊 DynamoDB 开发者指南》中的 DynamoDB 的 VPC 终端节点类型。
注意事项
-
网关端点仅在您创建该端点所在的区域可用。确保在 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 的网关端点。
使用控制台创建网关端点
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择 Endpoints(端点)。
-
选择 创建端点。
-
对于 Service category(服务类别),选择 AWS 服务。
-
对于 Services(服务),添加筛选条件 Type: Gateway(类型:网关),然后选择 com.amazonaws.
region
.dynamodb。 -
在 VPC 选项中,选择要创建端点的 VPC。
-
对于 Route tables(路由表),选择端点要使用的路由表。我们将自动添加一个路由,将以服务为目的地的流量指向端点网络接口。
-
对于 Policy(策略),选择 Full access(完全访问权限)以允许所有主体通过 VPC 端点对所有资源执行所有操作。否则,选择 Custom(自定义)以附加 VPC 端点策略,该策略控制主体通过 VPC 端点对资源执行操作的权限。
-
(可选)若要添加标签,请选择 Add new tag(添加新标签),然后输入该标签的键和值。
-
选择创建端点。
使用命令行创建网关端点
-
create-vpc-endpoint (AWS CLI)
-
全新 EC2VpcEndpoint(适用于 Windows 的工具) PowerShell
使用 IAM policy 控制访问
您可以创建 IAM policy 来控制哪些 IAM 主体可以使用特定的 VPC 端点来访问 DynamoDB 表。
例 示例:限制对特定端点的访问
您可以使用 aws:sourceVpce 条件键来创建用于限制对特定 VPC 端点的访问的策略。除非使用指定的 VPC 端点,否则以下策略将拒绝对账户中 DynamoDB 表的访问。此示例假设还有一个允许您的使用案例所需访问权限的策略语句。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-from-specific-endpoint", "Effect": "Deny", "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
" } } } ] }
关联路由表
您可以更改与网关端点关联的路由表。当您关联路由表时,我们将自动添加一个路由,将以服务为目的地的流量指向端点网络接口。当您取消关联路由表时,我们会自动从路由表中删除端点路由。
使用控制台关联路由表
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择端点。
-
选择网关端点。
-
选择 Actions、Manage route tables。
-
根据需要选择或取消选择路由表。
-
选择 Modify route tables(修改路由表)。
使用命令行关联路由表
-
modify-vpc-endpoint (AWS CLI)
-
Edit-EC2VpcEndpoint(适用于 Windows 的工具) PowerShell
编辑 VPC 端点策略
您可以为网关端点编辑端点策略,以此控制通过端点从 VPC 对 DynamoDB 进行的访问。默认策略允许完全访问。有关更多信息,请参阅 端点策略。
使用控制台更改端点策略
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择端点。
-
选择网关端点。
-
依次选择 Actions(操作)、Manage policy(管理策略)。
-
选择 Full Access(完全访问)以允许对服务进行完全访问,或者选择 Custom(自定义)并附加自定义策略。
-
选择保存。
使用命令行修改网关端点
-
modify-vpc-endpoint (AWS CLI)
-
Edit-EC2VpcEndpoint(适用于 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
" } ] }
删除网关端点
用完网关端点后可以将其删除。当您删除网关端点时,我们会从子网路由表中删除端点路由。
使用控制台删除网关端点
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择端点。
-
选择网关端点。
-
选择 Actions(操作)、Delete VPC Endpoint(删除 VPC 端点)。
-
当系统提示进行确认时,输入
delete
。 -
选择 Delete (删除)。
使用命令行删除网关端点
-
delete-vpc-endpoints (AWS CLI)
-
移除 EC2VpcEndpoint(适用于 Windows 的工具) PowerShell