本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
适用于 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 的网关端点。
使用控制台创建网关端点
打开 Amazon VPC 控制台,网址为https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择端点。
-
选择 创建端点。
-
对于 Service category(服务类别),选择 Amazon Web Services 服务。
-
对于服务,添加过滤器 “类型 = 网关”,然后选择 com. amazonaws。
region
.dynamodb。 -
对于 VPC,选择要VPC在其中创建端点的。
-
对于 Route tables(路由表),选择端点要使用的路由表。我们将自动添加一个路由,将以服务为目的地的流量指向端点网络接口。
-
对于策略,选择完全访问权限以允许所有委托人通过VPC端点对所有资源进行所有操作。否则,请选择自定义以附加VPC终端节点策略,该策略控制委托人通过终VPC端节点对资源执行操作所拥有的权限。
-
(可选)若要添加标签,请选择 Add new tag(添加新标签),然后输入该标签的键和值。
-
选择创建端点。
使用命令行创建网关端点
-
create-vpc-endpoint (Amazon CLI)
-
New-EC2VpcEndpoint(适用于 Windows 的工具 PowerShell)
使用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
" } } } ] }
关联路由表
您可以更改与网关端点关联的路由表。当您关联路由表时,我们将自动添加一个路由,将以服务为目的地的流量指向端点网络接口。当您取消关联路由表时,我们会自动从路由表中删除端点路由。
使用控制台关联路由表
打开 Amazon VPC 控制台,网址为https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择端点。
-
选择网关端点。
-
选择 Actions、Manage route tables。
-
根据需要选择或取消选择路由表。
-
选择 Modify route tables(修改路由表)。
使用命令行关联路由表
-
modify-vpc-endpoint (Amazon CLI)
-
Edit-EC2VpcEndpoint(适用于 Windows 的工具 PowerShell)
编辑VPC终端节点策略
您可以编辑网关终端节点的终端节点策略,该策略控制通过终端节点对 DynamoDB VPC 的访问。默认策略允许完全访问。有关更多信息,请参阅 端点策略。
使用控制台更改端点策略
打开 Amazon VPC 控制台,网址为https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择端点。
-
选择网关端点。
-
依次选择 Actions(操作)、Manage policy(管理策略)。
-
选择 Full Access(完全访问)以允许对服务进行完全访问,或者选择 Custom(自定义)并附加自定义策略。
-
选择保存。
使用命令行修改网关端点
-
modify-vpc-endpoint (Amazon 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/
。 -
在导航窗格中,选择端点。
-
选择网关端点。
-
选择操作,删除VPC端点。
-
当系统提示进行确认时,输入
delete
。 -
选择删除。
使用命令行删除网关端点
-
delete-vpc-endpoints (Amazon CLI)
-
Remove-EC2VpcEndpoint(适用于 Windows 的工具 PowerShell)