适用于 Amazon DynamoDB 的网关端点 - Amazon Virtual Private Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

适用于 Amazon DynamoDB 的网关端点

您可以使用网关终端节点访问亚马逊 DynamoDB。VPC VPC创建网关终端节点后,您可以将其添加为路由表中的目标,用于接收从您VPC到 DynamoDB 的流量。

使用网关端点不会发生任何额外费用。

DynamoDB 同时支持网关终端节点和接口终端节点。使用网关终端节点,您可以从VPC自己访问 DynamoDB,无需互联网网关NAT或设备,也无需VPC支付额外费用。但是,网关终端节点不允许从本地网络、其他 Amazon 区域的对VPCs等设备或通过传输网关进行访问。对于这些场景,您必须使用接口端点,后者需要额外付费。有关更多信息,请参阅亚马逊 DynamoD B VPC 开发者指南中的 DynamoDB 终端节点类型

注意事项

  • 网关端点仅在您创建该端点所在的区域可用。确保在 DynamoDB 表所在的相同区域内创建网关端点。

  • 如果您使用的是 Amazon DNS 服务器,则必须同时启用DNS主机名和DNS解析。VPC如果您使用的是自己的DNS服务器,请确保向 DynamoDB 发出的请求正确解析到由维护的 IP 地址。 Amazon

  • 对于通过网关端点访问 DynamoDB 的实例,安全组的规则必须允许进出 DynamoDB 的流量。您可以在安全组规则中引用 DynamoDB 的前缀列表的 ID。

  • 通过网ACL关终端节点访问 DynamoDB 的实例的子网网络必须允许进出 DynamoDB 的流量。您不能在网络ACL规则中引用前缀列表,但可以从 DynamoDB 的前缀列表中获取 DynamoDB 的 IP 地址范围。

  • 如果您使用 Amazon CloudTrail 记录 DynamoDB 操作,则日志文件包含服务使用VPC者中实例的EC2私有 IP 地址以及通过终端节点执行的任何请求的网关终端节点的 ID。

  • 网关端点仅支持IPv4流量。

  • 来自受影响子网中实例的源IPv4地址从您的公有IPv4地址更改为私有IPv4地址。VPC端点切换网络路由并断开已打开的TCP连接。之前使用公共IPv4地址的连接不会恢复。建议您在创建或修改网关端点时不要运行任何重要任务。或者,进行测试以确保在连接中断时您的软件能够自动重新连接到 DynamoDB。

  • 端点连接无法扩展到外部VPC。您的连接、对等VPN连接、VPC传输网关或 Amazon Direct Connect 连接另一端的资源VPC无法使用网关终端节点与 DynamoDB 通信。

  • 您的账户的默认配额为每个区域 20 个网关端点,该配额可调整。每个网关终端节点也限制为 255 个VPC。

创建网关端点

使用以下过程创建连接到 DynamoDB 的网关端点。

使用控制台创建网关端点
  1. 打开 Amazon VPC 控制台,网址为https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择端点

  3. 选择 创建端点

  4. 对于 Service category(服务类别),选择 Amazon Web Services 服务

  5. 对于服务,添加过滤器 “类型 = 网关”,然后选择 com. amazonaws。region.dynamodb。

  6. 对于 VPC,选择要VPC在其中创建端点的。

  7. 对于 Route tables(路由表),选择端点要使用的路由表。我们将自动添加一个路由,将以服务为目的地的流量指向端点网络接口。

  8. 对于策略,选择完全访问权限以允许所有委托人通过VPC端点对所有资源进行所有操作。否则,请选择自定义以附加VPC终端节点策略,该策略控制委托人通过终VPC端节点对资源执行操作所拥有的权限。

  9. (可选)若要添加标签,请选择 Add new tag(添加新标签),然后输入该标签的键和值。

  10. 选择创建端点

使用命令行创建网关端点

使用IAM策略控制访问权限

您可以创建IAM策略来控制哪些IAM委托人可以使用特定终端节点访问 DynamoDB 表。VPC

例 示例:限制对特定端点的访问

您可以使用 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. 打开 Amazon VPC 控制台,网址为https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择端点

  3. 选择网关端点。

  4. 选择 ActionsManage route tables

  5. 根据需要选择或取消选择路由表。

  6. 选择 Modify route tables(修改路由表)。

使用命令行关联路由表

编辑VPC终端节点策略

您可以编辑网关终端节点的终端节点策略,该策略控制通过终端节点对 DynamoDB VPC 的访问。默认策略允许完全访问。有关更多信息,请参阅 端点策略

使用控制台更改端点策略
  1. 打开 Amazon VPC 控制台,网址为https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择端点

  3. 选择网关端点。

  4. 依次选择 Actions(操作)、Manage policy(管理策略)。

  5. 选择 Full Access(完全访问)以允许对服务进行完全访问,或者选择 Custom(自定义)并附加自定义策略。

  6. 选择保存

使用命令行修改网关端点

下面是访问 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. 打开 Amazon VPC 控制台,网址为https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择端点

  3. 选择网关端点。

  4. 选择操作删除VPC端点

  5. 当系统提示进行确认时,输入 delete

  6. 选择删除

使用命令行删除网关端点