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 账户根用户,使用您创建账户时所用的电子邮件地址和密码登录,即可获得该身份。强烈建议您不要使用根用户执行日常任务。保护好根用户凭证,并使用这些凭证来执行仅根用户可以执行的任务。有关要求您以根用户身份登录的任务的完整列表,请参阅《AWS 一般参考》中的需要根用户凭证的任务

  • IAM 用户和组

    IAM 用户是AWS 账户内对某个人员或应用程序具有特定权限的一个身份。在可能的情况下,我们建议使用临时凭证,而不是创建具有长期凭证(如密码和访问密钥)的 IAM 用户。但是,如果您有一些特定的使用场景需要长期凭证以及 IAM 用户,我们建议您轮换访问密钥。有关更多信息,请参阅《IAM 用户指南》中的对于需要长期凭证的使用场景定期轮换访问密钥

    IAM 组是一个指定一组 IAM 用户的身份。您不能使用组的身份登录。您可以使用组来一次性为多个用户指定权限。如果有大量用户,使用组可以更轻松地管理用户权限。例如,您可能具有一个名为 IAMAdmins 的组,并为该组授予权限以管理 IAM 资源。

    用户与角色不同。用户唯一地与某个人员或应用程序关联,而角色旨在让需要它的任何人代入。用户具有永久的长期凭证,而角色提供临时凭证。要了解更多信息,请参阅 IAM 用户指南中的何时创建 IAM 用户(而不是角色)

  • IAM 角色

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

    • Federated user access(联合用户访问)– 要向联合身份分配权限,请创建角色并为角色定义权限。当联合身份进行身份验证时,该身份将与角色相关联并被授予由此角色定义的权限。有关联合身份验证的角色的信息,请参阅《IAM 用户指南》中的为第三方身份提供商创建角色如果您使用 IAM Identity Center,则需要配置权限集。为控制您的身份在进行身份验证后可以访问的内容,IAM Identity Center 将权限集与 IAM 中的角色相关联。有关权限集的信息,请参阅《AWS IAM Identity Center (successor to AWS Single Sign-On) 用户指南》中的权限集

    • 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 的权限。我们建议您先阅读概述。