AWS Identity and Access Management
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

角色术语和概念

以下是可帮助您开始使用角色的一些基本术语。

角色

一组权限,用于授予对 AWS 中的操作和资源的访问权限。这些权限附加到角色,而不附加到 IAM 用户或组。角色可由以下用户使用:

  • 位于相同 AWS 账户中的作为角色的 IAM 用户

  • 位于不同 AWS 账户中的作为角色的 IAM 用户

  • 由 AWS 提供的 Web 服务,如 Amazon Elastic Compute Cloud (Amazon EC2)

  • 由与 SAML 2.0 或 OpenID Connect 兼容的外部身份提供商 (IdP) 服务或定制的身份代理进行身份验证的外部用户。

     

AWS 服务角色

服务代表您在您的账户中执行操作而担任的角色。您在设置大多数 AWS 服务环境时,必须定义服务担任的角色。这个服务角色必须包含该服务访问所需的 AWS 资源会用到的所有必要权限。服务角色因服务而异,但只要您满足服务记录在案的要求,许多服务都允许您选择权限。服务角色只在您的账户内提供访问权限,不能用于为访问其他账户中的服务授权。您可以在 IAM 中创建、修改和删除服务角色。

EC2 实例的 AWS 服务角色

服务为了启动运行您的应用程序的 Amazon EC2 实例而代入的一种特殊类型的服务角色。该角色在 EC2 实例启动时分配给该实例。AWS 会自动提供已附加到角色的临时安全凭证,然后代表应用程序将这些安全凭证提供给 EC2 实例使用。有关使用 EC2 实例的服务角色的详细信息,请参阅使用 IAM角色向在 Amazon EC2 实例上运行的应用程序授予权限

AWS 服务相关角色

与 AWS 服务直接关联的一种独特类型的服务角色。服务相关角色由服务预定义,具有服务代表您调用其他 AWS 服务所需的所有权限。链接服务还定义了创建、修改和删除服务相关角色的方式。服务可以自动创建或删除角色。它可能允许您在服务的向导或流程中创建、修改或删除角色。或者,它可能需要您使用 IAM 创建或删除角色。无论使用哪种方法,服务相关角色都可让您更轻松地设置服务,因为您不必手动添加必要的权限。

注意

如果在某项服务开始支持服务相关角色时您已使用该服务,您可能会收到一封电子邮件,告知您账户中的新角色。在这种情况下,该服务已自动在您的账户中创建服务相关角色。您无需执行任何操作来支持此角色,并且您不应手动删除它。有关更多信息,请参阅 我的 AWS 账户中出现新角色

有关哪些服务支持使用服务相关角色的信息,请参阅使用 IAM 的 AWS 服务并查找其在 Service-Linked Role 列中为 Yes 的服务。选择 Yes 与查看该服务的服务相关角色文档的链接。如果该服务不包括有关创建、修改或删除服务相关角色的文档,则可以使用 IAM 控制台、AWS CLI 或 API。有关更多信息,请参阅 使用服务相关角色

角色链

在通过 AWS CLI 或 API 使用一个角色担任另一个角色时,将建立角色链。例如,假定用户 1 有权担任角色 A 和角色 B。此外,角色 B 有权担任角色 A。您可以在 AssumeRole API 操作中使用用户 1 的长期用户凭证以担任角色 A。该操作返回角色 A 的短期凭证。要参与角色链,您可以使用角色 A 的短期凭证担任角色 B。

角色链将您的 AWS CLI 或 API 角色会话限制为最长 1 小时。对于前面的示例,如果在 AssumeRole API 操作中使用角色 A 的临时凭证担任角色 B,您可以使用 DurationSeconds 参数指定角色会话持续时间。您可以指定最多为 43200 秒 (12 小时) 的参数值,具体取决于您的角色的最大会话持续时间设置。由于该限制,如果在使用链担任角色时提供大于 1 小时的 DurationSeconds 参数值,操作将失败。

委托

为某人授予权限以允许访问您控制的资源。委托涉及设置拥有资源的账户 (信托账户) 与包含需要访问资源的用户的账户 (可信账户) 之间的信任。可信账户和信托账户可为以下任一账户:

  • 同一账户。

  • 受您的组织控制的两个单独账户。

  • 由不同组织拥有的两个账户。

要委派权限以访问资源,请在附加两个策略的信任账户中创建 IAM 角色权限策略授予角色的用户所需权限对资源执行预期任务。信任策略指定允许哪些受信任账户成员担任角色。

当您创建信任策略时,您不能将通配符 (*) 指定为委托人。信任策略附加到信任账户中的角色,并且是权限的一半。另一半是附加到允许用户切换到或代入角色的可信账户中的用户的权限策略。临时代入一个角色的用户将放弃自己的权限而接过该角色的权限。当用户退出或停止使用该角色时,将恢复原始的用户权限。一个名为外部 ID 的附加参数可帮助确保在未由同一组织控制的账户之间安全地使用角色。

联合身份验证

创建外部身份提供商与 AWS 之间的信任关系。用户可登录一个 Web 身份提供商,如 Login with AmazonFacebookGoogle 或与 OpenID Connect (OIDC) 兼容的任何 IdP。用户还可登录与安全断言标记语言 (SAML) 2.0 兼容的企业身份系统,如 Microsoft Active Directory 联合身份验证服务。当使用 OIDC 和 SAML 2.0 在这些外部身份提供商与 AWS 之间配置信任关系时,会将用户分配到 IAM 角色。用户还会获得允许该用户访问您的 AWS 资源的临时凭证。

信任策略

一个 JSON 格式的文档,您可在其中定义可代入角色的人员。此可信实体在文档中作为委托人 包含在策略中。该文档是根据 IAM 策略语言的规则编写的。

权限策略

一个 JSON 格式的权限文档,您可在其中定义角色可以使用的操作和资源。该文档是根据 IAM 策略语言的规则编写的。

权限边界

一项高级功能,借助该功能,使用策略来限制角色可以具有的最大权限。这些边界可应用于 AWS Organizations 组织或者 IAM 用户或角色。无法将权限边界应用于服务相关角色。有关更多信息,请参阅 IAM 身份的权限边界

委托人

AWS 中可执行操作并访问资源的实体。委托人可以是 AWS 账户根用户、IAM 用户或角色。您可采用以下两种方式之一授予可访问资源的权限:

  • 可向用户或角色 (直接,或通过组间接) 附加权限。

  • 对于支持基于资源的策略的这些服务,您可在已附加到资源的策略的 Principal 元素中标识委托人。

如果您将一个 AWS 账户称为委托人,则它通常表示该账户中定义的任何委托人。

注意

角色的信任策略中的 Principal 元素不得使用通配符 (*)。

用于跨账户访问的角色

将一个账户中的资源的访问权限授予另一个账户中的受信任委托人。角色是授予跨账户访问权限的主要方式。但是,通过由 AWS 提供的某些 Web 服务,您可将策略直接附加到资源 (而不是使用角色作为代理)。这些策略称为基于资源的策略,您可以使用它们向其他 AWS 账户中的委托人授予对资源的访问权限。以下服务支持针对以下指定资源的基于资源的策略:Amazon Simple Storage Service (S3) 存储桶、Amazon Glacier 文件库、Amazon Simple Notification Service (SNS) 主题和 Amazon Simple Queue Service (SQS) 队列。有关更多信息,请参阅 IAM 角色与基于资源的策略有何不同