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

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

适用于 Amazon DynamoDB 的网关端点

您可以使用网关 VPC 端点从 VPC 访问 Amazon DynamoDB。创建网关端点后,您可以将其添加为路由表中的目标,用于从您的 VPC 流向 DynamoDB 的流量。

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

注意事项

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

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

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

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

  • DynamoDB 不支持基于资源的策略(例如,针对表)。对 DynamoDB 的访问通过端点策略以及针对各个用户和角色的策略进行控制。

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

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

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

  • 无法将端点连接扩展到 VPC 之外。VPC 中的 VPN 连接、VPC 对等连接、中转网关或 Amazon Direct Connect 连接的另一端的资源,不能使用网关端点来与 DynamoDB 通信。

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

创建网关端点

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

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

  2. 在导航窗格中,选择 Endpoints(端点)。

  3. 选择 Create endpoint(创建端点)。

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

  5. 对于 Services(服务),添加筛选条件 Type: Gateway(类型:网关),然后选择 com.amazonaws.region.dynamodb

  6. VPC 选项中,选择要创建端点的 VPC。

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

  8. 对于 Policy(策略),选择 Full access(完全访问权限)以允许所有主体通过 VPC 端点对所有资源执行所有操作。否则,选择 Custom(自定义)以附加 VPC 端点策略,该策略控制主体通过 VPC 端点对资源执行操作的权限。

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

  10. 选择 Create endpoint(创建端点)。

使用命令行创建网关端点

使用 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" } } } ] }

关联路由表

您可以更改与网关端点关联的路由表。当您关联路由表时,我们将自动添加一个路由,将以服务为目的地的流量指向端点网络接口。当您取消关联路由表时,我们会自动从路由表中删除端点路由。

使用控制台关联路由表
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Endpoints(端点)。

  3. 选择网关端点。

  4. 选择 ActionsManage route tables

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

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

使用命令行关联路由表

编辑 VPC 端点策略

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

使用控制台更改端点策略
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/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. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Endpoints(端点)。

  3. 选择网关端点。

  4. 选择 Actions(操作)、Delete VPC Endpoint(删除 VPC 端点)。

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

  6. 选择删除

使用命令行删除网关端点