比较 IAM 身份和凭证
Amazon Identity and Access Management 中管理的身份是 IAM 用户、IAM 角色和 IAM 组。这些是 Amazon 与 Amazon Web Services 账户 一起创建的根用户之外的身份。
强烈建议您不使用根用户执行日常任务,即使是管理任务。相反,可以预置其他用户并授予他们执行必要任务所需的权限。可以通过如下方式添加用户:将人员添加到 IAM Identity Center 目录,将外部身份提供商与 IAM Identity Center 或 IAM 联合,或者创建最低权限 IAM 用户。
重要
在北京和宁夏区域,没有根用户的概念。所有用户都是 IAM 用户,包括创建 Amazon 账户的用户。
为了获得额外的安全性,我们建议集中根访问,以帮助您集中保护使用 Amazon Organizations 管理的 Amazon Web Services 账户 的根用户凭证。集中管理成员账户的根访问权限 允许您集中移除和防止长期的根用户凭证恢复,从而防止大规模的意外根访问。启用集中根访问后,您可以假设一个特权会话,以对成员账户执行操作。
设置用户之后,您可以授予特定人员对 Amazon Web Services 账户 的访问权限,并为他们提供访问资源的权限。
作为最佳实践,Amazon 建议您要求人类用户担任 IAM 角色访问 Amazon,从而他们可使用临时凭证。如果您在 IAM Identity Center 目录中管理身份,或者使用与身份提供商的联合身份验证,则应遵循最佳实践。
术语
通常在使用 IAM 身份时使用这些术语:
- IAM 资源
-
IAM 服务存储以下资源。您可以在 IAM 控制台中添加、编辑和删除这些资源。
-
IAM 用户
-
IAM 组
-
IAM 角色
-
权限策略
-
身份提供者对象
-
- IAM 实体
-
Amazon 用于身份验证的 IAM 资源。在基于资源的策略中指定该实体作为主体。
-
IAM 用户
-
IAM 角色
-
- IAM 身份
-
在策略中授权执行操作和访问资源的 IAM 资源。身份包括 IAM 用户、IAM 组和 IAM 角色。
- 主体
-
可对 Amazon 资源发出操作请求的 Amazon Web Services 账户根用户、IAM 用户或 IAM 角色。主体包括人类用户、工作负载、联合用户和担任的角色。在身份验证后,IAM 会根据主体类型授予主体永久或临时凭证,以向 Amazon 发出请求。
人类用户也称为人类身份,例如应用程序的人员、管理员、开发人员、操作员和使用者。
工作负载是可提供商业价值的一系列资源和代码,例如应用程序、过程、操作工具和其他组件。
联合用户是指其身份和凭证由其他身份提供商(例如 Active Directory、Okta 或 Microsoft Entra)管理的用户。
IAM 角色是可在账户中创建的 IAM 身份,该身份具有特定权限,可确定该身份可执行和不可执行的操作。但是,角色旨在让需要它的任何人代入,而不是唯一地与某个人员关联。
IAM 可向 IAM 用户和根用户授予长期凭证和 IAM 角色临时凭证。联合用户和 Amazon IAM Identity Center 中的用户 登录 Amazon 后将担任 IAM 角色,获得其授予的临时凭证。作为最佳实践,我们建议您要求人类用户和工作负载使用临时凭证访问 Amazon 资源。
IAM 用户和 IAM Identity Center 中用户之间的区别
IAM 用户不是单独的账户;他们是您账户中的个人用户。每个用户都可以有自己的密码可用于访问 Amazon Web Services Management Console。您还可以为每个用户创建单独的访问密钥,以便用户可以发出编程请求以使用账户中的资源。
IAM 用户及其访问密钥将拥有 Amazon 资源的长期凭证。IAM 用户的主要用途是使无法使用 IAM 角色的工作负载能够使用 API 或 CLI 向 Amazon 服务发出编程请求。
注意
对于需要具有编程访问权限和长期凭证的 IAM 用户的场景,我们建议在需要时更新访问密钥。有关更多信息,请参阅 更新访问密钥。
员工身份(人员)是 Amazon IAM Identity Center 中的用户,其根据所执行的角色具有不同的权限需求,并且可以在组织内的各种 Amazon Web Services 账户 中工作。如果您的用例需要访问密钥,则可以使用 Amazon IAM Identity Center 中的用户 支持这些应用场景。通过 Amazon Web Services 访问门户登录的人员可以使用 Amazon 资源的短期凭证获取访问密钥。对于集中式访问权限管理,我们建议使用 Amazon IAM Identity Center(IAM Identity Center)来管理对您账户的访问权限以及这些账户中的其他权限。IAM Identity Center 会自动配置 Identity Center 目录作为您的默认身份源,您可以在其中添加人员和组,并分配其对您 Amazon 资源的访问级别。有关更多信息,请参阅《Amazon IAM Identity Center 用户指南》中的什么是 Amazon IAM Identity Center。
这两种类型用户之间的主要区别在于,IAM Identity Center 中的用户在登录 Amazon 时会自动担任 IAM 角色,然后才能访问管理控制台或 Amazon 资源。每次用户登录 Amazon 时,IAM 角色都会授予临时凭证。对于使用 IAM 角色登录的 IAM 用户,其必须具有担任和切换角色的权限,并且必须在访问 Amazon 账户后显式选择切换到其想要担任的角色。
现有身份源的联合用户
如果您组织中的用户在登录到公司网络时已通过身份验证,则不必为其创建单独的 IAM 用户或 IAM Identity Center 中的用户。相反,您可以使用 IAM 或 Amazon IAM Identity Center 将这些用户身份联合到 Amazon 中。联合用户将担任 IAM 角色,该角色授予其访问特定资源的权限。有关角色的更多信息,请参阅角色术语和概念。
![此图显示联合用户如何获取临时 Amazon 安全凭证以访问 Amazon Web Services 账户 中的资源。](images/iam-intro-federation.diagram.png)
联合身份验证在以下情况尤其有用:
-
您的用户已存在于公司目录中。
如果您的公司目录与安全断言标记语言 2.0 (SAML 2.0) 兼容,则可以配置公司目录以便为用户提供对 Amazon Web Services Management Console的单一登录 (SSO) 访问。有关更多信息,请参阅 临时凭证的常见情形。
如果您的公司目录与 SAML 2.0 不兼容,则可以创建身份凭证代理程序应用程序以便为用户提供对 Amazon Web Services Management Console 的单点登录(SSO)访问。有关更多信息,请参阅 使自定义身份凭证代理程序能够访问 Amazon 控制台。
如果您的公司目录是 Microsoft Active Directory,则可以使用 Amazon IAM Identity Center 连接 Active Directory 中的自我管理目录或 Amazon Directory Service
中的目录,以便在公司目录与您 Amazon Web Services 账户 之间建立信任。 如果您使用外部身份提供者(IdP)(例如 Okta 或 Microsoft Entra)管理用户,则可以使用 Amazon IAM Identity Center 在 IdP 和 Amazon Web Services 账户 之间建立信任。有关更多信息,请参阅《Amazon IAM Identity Center 用户指南》中的连接到外部身份提供者。
-
您的用户已有 Internet 身份。
如果您创建的移动应用程序或基于 Web 的应用程序可以允许用户通过 Internet 身份提供商 (如 Login with Amazon、Facebook、Google 或任何与 OpenID Connect (OIDC) 兼容的身份提供商) 标识自己,则应用程序可以使用联合访问 Amazon。有关更多信息,请参阅 OIDC 联合身份验证。
提示
要使用与 Internet 身份提供商的联合身份,我们建议使用 Amazon Cognito。
提供用户访问权限的不同方法
以下是可以提供您的 Amazon 资源访问权限的几种方式。
用户访问类型 | 何时使用? | 哪里有更多信息? |
---|---|---|
使用 IAM Identity Center 为人员(例如您的员工用户)提供 Amazon 资源的单点登录访问权限 |
IAM Identity Center 提供了一个集中位置,将用户的管理及其对 Amazon Web Services 账户 和云应用程序的访问汇集在一起。 您可以在 IAM Identity Center 中设置身份存储,也可以与现有身份提供者(IdP)一起配置联合身份验证。安全最佳实践建议向人类用户授予 Amazon 资源的有限凭证。 人员可以获得更简单的登录体验,并且您可以控制其通过单个系统访问资源。IAM Identity Center 支持多重身份验证(MFA),以提高账户的安全性。 |
有关设置 IAM Identity Center 的更多信息,请参阅《Amazon IAM Identity Center 用户指南》中的入门。 有关在 IAM Identity Center 中使用 MFA 的更多信息,请参阅《Amazon IAM Identity Center 用户指南》中的多重身份验证。 |
人类用户(例如您的员工用户)使用 IAM 身份提供商(IdP)访问 Amazon 服务的联合访问权限 |
IAM 支持与 OpenID Connect (OIDC) 或者 SAML 2.0 (Security Assertion Markup Language 2.0) 兼容的 IdPs。创建 IAM 身份提供商后,必须创建一个或多个可以动态分配给联合用户的 IAM 角色。 |
有关 IAM 身份提供程序和联合身份验证的更多信息,请参阅 身份提供程序和联合身份验证。 |
Amazon Web Services 账户 间的跨账户访问权限 |
您想要与其他 Amazon Web Services 账户 中的用户共享对特定 Amazon 资源的访问权限。 角色是授予跨账户访问权限的主要方式。但是,某些 Amazon 服务支持基于资源的策略,允许您将策略直接附加到资源(而不是使用角色作为代理)。 |
有关 IAM 角色的更多信息,请参阅 IAM 角色。 有关服务相关角色的更多信息,请参阅创建服务相关角色。 有关哪些服务支持使用服务相关角色的信息,请参阅 使用 IAM 的Amazon服务。查找在服务相关角色列中具有是值的服务。要查看该服务的服务相关角色文档,请选择该列中与是有关的链接。 |
您的 Amazon Web Services 账户 中指定 IAM 用户的长期凭证 |
您可能有一些特定的使用案例需要带有 Amazon 中 IAM 用户的长期凭证。您可以使用 IAM 在您的 Amazon Web Services 账户 中创建这些 IAM 用户,并使用 IAM 管理他们的权限。部分使用场景包括:
根据 最佳实践,对于需要具有 编程访问权限和长期凭证 的 IAM 用户的场景,我们建议在需要时更新访问密钥。有关更多信息,请参阅 更新访问密钥。 |
有关设置 IAM 用户的信息,请参阅 在 Amazon Web Services 账户 中创建 IAM 用户。 有关 IAM 用户访问密钥的更多信息,请参阅 管理 IAM 用户的访问密钥。。 有关 Amazon CodeCommit 或 Amazon Keyspaces 的服务特定凭证的更多信息,请参阅 CodeCommit 的 IAM 凭证:Git 凭证、SSH 密钥和 Amazon 访问密钥 和 将 IAM 与 Amazon Keyspaces(Apache Cassandra 兼容)结合使用。 |
支持编程用户访问
如果用户需要在 Amazon Web Services Management Console 之外与 Amazon 交互,则需要编程式访问权限。授予编程式访问权限的方法取决于访问 Amazon 的用户类型:
-
如果您在 IAM Identity Center 中管理身份,则 Amazon API 需要一个配置文件,而 Amazon Command Line Interface 需要一个配置文件或环境变量。
-
如果您有 IAM 用户,则 Amazon API 和 Amazon Command Line Interface 需要访问密钥。可能的话,创建临时凭证,该凭证由一个访问密钥 ID、一个秘密访问密钥和一个指示凭证何时到期的安全令牌组成。
要向用户授予编程式访问权限,请选择以下选项之一。
哪个用户需要编程式访问权限? | 选项 | 更多信息 |
---|---|---|
员工身份 (在 IAM Identity Center 中管理的人员和用户) |
使用短期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求(直接或使用 Amazon SDK)。 |
对于 Amazon CLI,请按照《Amazon IAM Identity Center 用户指南》中获取用于 CLI 访问的 IAM 角色凭证中的说明进行操作。 对于 Amazon API,请按照《Amazon SDK 和工具参考指南》中 SSO 凭证中的说明进行操作。 |
IAM 用户 | 使用短期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求(直接或使用 Amazon SDK)。 | 按照将临时凭证用于 Amazon 资源中的说明进行操作。 |
IAM 用户 | 使用长期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求(直接或使用 Amazon SDK)。 (不推荐使用) |
按照管理 IAM 用户的访问密钥中的说明进行操作。 |
联合用户 | 使用 Amazon STS API 操作创建具有临时安全凭证(包括访问密钥对和会话令牌)的新会话。 | 有关 API 操作的说明,请参阅 请求临时安全凭证 |