将基于身份的策略与 Amazon DynamoDB 结合使用
该主题涵盖了将基于身份的 Amazon Identity and Access Management(IAM)策略与 Amazon DynamoDB 结合使用并提供了示例。示例说明账户管理员如何将权限策略附加到 IAM 身份(即用户、组和角色),从而授予对 Amazon DynamoDB 资源执行操作的权限。
本主题的各个部分涵盖以下内容:
下面是权限策略的示例。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DescribeQueryScanBooksTable", "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:us-west-2:
account-id
:table/Books" } ] }
该策略有一条语句用于为针对 us-west-2
Amazon 区域中的某个表(由
指定的 Amazon 账户所有)的三项 DynamoDB 操作(account-id
dynamodb:DescribeTable
、dynamodb:Query
和 dynamodb:Scan
))授予权限。Resource
值中的 Amazon 资源名称(ARN)指定了要应用权限的表。
使用 Amazon DynamoDB 控制台所需的 IAM 权限
要使用 DynamoDB 控制台,用户必须拥有一组最低权限来允许他们使用 Amazon 账户中的 DynamoDB 资源。除这些 DynamoDB 权限以外,控制台还需要权限:
-
显示指标和图形的 Amazon CloudWatch 权限。
-
导出和导入 DynamoDB 数据的 Amazon Data Pipeline 权限。
-
访问导出和导入所需角色的 Amazon Identity and Access Management 权限。
-
每当触发 CloudWatch 警报时通知您的 Amazon Simple Notification Service 权限。
-
处理 DynamoDB Streams 记录的 Amazon Lambda 权限。
如果创建比必需的最低权限更为严格的 IAM 策略,对于附加了该 IAM 策略的用户, 控制台将无法按预期正常运行。为确保这些用户仍可使用 DynamoDB 控制台,也可向用户附加 AmazonDynamoDBReadOnlyAccess
Amazon 托管策略,如 适用于 Amazon DynamoDB 的 Amazon 托管式(预定义)IAM 策略 中所述。
对于只需要调用 Amazon CLI 或 Amazon DynamoDB API 的用户,您无需为其提供最低控制台权限。
注意
如果涉及 VPC 端点,您还需要授权 DescribeEndpoints API 调用,以通过 IAM 操作 (dynamodb:DescribeEndpoints) 请求 IAM 主体。有关更多信息,请参阅端点所需的策略。
适用于 Amazon DynamoDB 的 Amazon 托管式(预定义)IAM 策略
Amazon 通过提供由 Amazon 创建和管理的独立 IAM 策略来满足许多常用案例的要求。这些 Amazon 托管策略可针对常用案例授予必要的权限,使您不必调查所需权限。有关更多信息,请参阅 IAM 用户指南中的 Amazon 托管策略。
下面的 Amazon 托管式策略可附加到您账户中的用户,这些托管式策略特定于 DynamoDB 并且按使用案例场景进行分组:
-
AmazonDynamoDBReadOnlyAccess – 通过 Amazon Web Services Management Console授予对 DynamoDB 资源的只读访问权限。
-
AmazonDynamoDBFullAccess – 通过 Amazon Web Services Management Console授予对 DynamoDB 资源的完全访问权限。
您可以通过登录到 IAM 控制台并在该控制台中搜索特定策略来查看这些 Amazon 托管权限策略。
重要
最佳实践是创建自定义 IAM 策略,从而向有需要的用户、角色或组授予最低权限。
客户管理型策略示例
本节的用户策略示例介绍如何授予各 DynamoDB 操作权限的策略示例。当您使用 Amazon SDK 或 Amazon CLI 时,可以使用这些策略。当您使用控制台时,您需要授予特定于控制台的其他权限。有关更多信息,请参阅 使用 Amazon DynamoDB 控制台所需的 IAM 权限。
注意
以下所有策略示例都使用一个 Amazon 区域并包含虚构的账户 ID 和表名。
示例:
IAM 用户指南,包含另外三个 DynamoDB 示例: