Amazon Virtual Private Cloud
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Amazon DynamoDB 的终端节点

如果您已设置从 VPC 访问 DynamoDB 表,则您可以继续访问这些表,如同您在设置终端节点后通常访问一样。但请注意以下几点:

  • 您的终端节点具有可控制使用终端节点访问 DynamoDB 资源的策略。默认策略允许 VPC 内的任何用户或服务使用任何 AWS 账户中的凭证访问任何 DynamoDB 资源。有关更多信息,请参阅 控制对服务的访问

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

  • 您无法通过 VPC 终端节点访问 Amazon DynamoDB Streams。

  • 终端节点当前不支持跨区域请求 - 确保在您的 DynamoDB 表所在的区域内创建终端节点。

  • 如果使用 AWS CloudTrail 记录 DynamoDB 操作,则日志文件包含 VPC 中的 EC2 实例的私有 IP 地址和通过终端节点执行的任何操作的终端节点 ID。

在对 DynamoDB 使用终端节点之前,确保您已阅读下面的一般限制:终端节点限制

对 DynamoDB 使用终端节点策略

下面是访问 DynamoDB 的终端节点策略示例。

重要

所有类型的策略 - IAM 用户策略和终端节点策略都必须授予必要权限以便成功访问 DynamoDB。

例 示例:只读访问权限

您可以创建通过 VPC 终端节点将操作限制为仅列出和描述 DynamoDB 表的策略。

Copy
{ "Statement": [ { "Sid": "ReadOnly", "Principal": "*", "Action": [ "dynamodb:DescribeTable", "dynamodb:ListTables" ], "Effect": "Allow", "Resource": "*" } ] }

例 示例:限制对特定表的访问权限

您可以创建限制对特定 DynamoDB 表的访问权限的策略。在此示例中,终端节点策略仅允许访问 StockTable

Copy
{ "Statement": [ { "Sid": "AccessToSpecificTable", "Principal": "*", "Action": [ "dynamodb:Batch*", "dynamodb:Delete*", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Update*" ], "Effect": "Allow", "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/StockTable" } ] }

使用 IAM 策略控制对 DynamoDB 的访问权限

您可以为 IAM 用户、组或角色创建限制仅从特定 VPC 终端节点访问 DynamoDB 表的 IAM 策略。为此,您可以使用 IAM 策略中表资源的 aws:sourceVpce 条件键。

有关管理对 DynamoDB 访问权限的更多信息,请参阅 Amazon DynamoDB 开发人员指南 中的 Amazon DynamoDB 的身份验证和访问控制

例 示例:限制从特定终端节点的访问

在此示例中,用户没有使用 DynamoDB 表的权限,除非通过终端节点 vpce-11aa22bb 进行访问。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessFromSpecificEndpoint", "Action": "dynamodb:*", "Effect": "Deny", "Resource": "arn:aws:dynamodb:region:account-id:table/*", "Condition": { "StringNotEquals" : { "aws:sourceVpce": "vpce-11aa22bb" } } } ] }