Amazon DynamoDB 中的身份和权限管理 - Amazon DynamoDB

Amazon DynamoDB 中的身份和权限管理

访问 Amazon DynamoDB 需要凭证。这些凭证必须有权访问 AWS 资源,例如 Amazon DynamoDB 表或 Amazon Elastic Compute Cloud (Amazon EC2) 实例。下面几部分提供详细信息来说明如何使用 AWS Identity and Access Management (IAM) 和 DynamoDB 控制谁能访问您的资源,从而对这些资源进行保护。

身份验证

您可以以下面任一类型的身份访问 AWS:

  • AWS 账户根用户 – 当您首次创建 AWS 账户 时,最初使用的是一个对账户中所有 AWS 服务 和资源有完全访问权限的单点登录身份。此身份称为AWS 账户根用户,使用您创建账户时所用的电子邮件地址和密码登录,即可获得该身份。强烈建议您不使用根用户执行日常任务,即使是管理任务。相反,请遵循仅使用根用户创建您的第一个 IAM 用户的最佳实践。然后请妥善保存根用户凭证,仅用它们执行少数账户和服务管理任务。

  • IAM 用户IAM 用户是您的 AWS 账户 中具有特定的自定义权限(例如,用于在 DynamoDB 中创建表的权限)的身份。您可以使用 IAM 用户名和密码登录以保护 AWS 网页(如 AWS Management ConsoleAWS 开发论坛AWS Support 中心)。

    除了用户名和密码之外,您还可以为每个用户生成访问密钥。在通过几个 SDK 之一或使用 AWS Command Line Interface(CLI)以编程方式访问 AWS 服务 时,可以使用这些密钥。SDK 和 CLI 工具使用访问密钥对您的请求进行加密签名。如果您不使用 AWS 工具,则必须自行对请求签名。DynamoDB 支持签名版本 4,这是用于对入站 API 请求进行身份验证的协议。有关验证请求的更多信息,请参阅 AWS 一般参考中的签名版本 4 签名流程

  • IAM 角色IAM 角色是可在账户中创建的一种具有特定权限的 IAM 身份。IAM 角色类似于 IAM 用户,因为它是一个 AWS 身份,具有确定其在 AWS 中可执行和不可执行的操作的权限策略。但是,角色旨在让需要它的任何人代入,而不是唯一地与某个人员关联。此外,角色没有关联的标准长期凭证(如密码或访问密钥)。相反,当您代入角色时,它会为您提供角色会话的临时安全凭证。具有临时凭证的 IAM 角色在以下情况下很有用:

    • 联合身份用户访问 – 您可以不创建 IAM 用户,而是使用来自 AWS Directory Service、您的企业用户目录或 Web 身份提供商的现有身份。这些用户被称为联合用户。在通过身份提供商请求访问权限时,AWS 将为联合身份用户分配角色。有关联合身份用户的更多信息,请参阅《IAM 用户指南》中的联合身份用户和角色

    • AWS 服务 访问 – 服务角色是一个 IAM 角色,服务代入该角色以代表您在您的账户中执行操作。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息,请参阅《IAM 用户指南》中的创建向 AWS 服务 委派权限的角色

    • 在 Amazon EC2 上运行的应用程序 – 您可以使用 IAM 角色管理在 EC2 实例上运行并发出 AWS CLI 或 AWS API 请求的应用程序的临时凭证。这优先于在 EC2 实例中存储访问密钥。要将 AWS 角色分配给 EC2 实例并使其对该实例的所有应用程序可用,您可以创建一个附加到实例的实例配置文件。实例配置文件包含角色,并使 EC2 实例上运行的程序能够获得临时凭证。有关更多信息,请参阅《IAM 用户指南》中的使用 IAM 角色为 Amazon EC2 实例上运行的应用程序授予权限

访问控制

您可以使用有效的凭证来对自己的请求进行身份验证,但您还必须拥有权限才能创建或访问 Amazon DynamoDB 资源。例如,您必须拥有创建 Amazon DynamoDB 表的权限。

下面几节介绍如何管理 Amazon DynamoDB 的权限。我们建议您先阅读概述。