IAM 角色用例

28 Aug 2024 | 5 分钟阅读

使用角色的两种方法

  • IAM 控制台: 当 IAM 用户在 IAM 控制台中工作并希望使用角色时,他们可以临时访问该角色的权限。 IAM 用户放弃其原始权限并获得该角色的权限。当 IAM 用户退出角色时,其原始权限将被恢复。
  • 编程访问: 一个 AWS 服务,例如 Amazon EC2 实例,可以使用角色,通过向 AWS 发出编程请求来请求临时安全凭证。

IAM 角色可以通过以下方式使用

  • IAM 用户: IAM 角色用于向您的 IAM 用户授予访问您自己或不同账户中的 AWS 资源的权限。 IAM 用户可以使用 IAM 控制台使用附加到角色的权限。 角色还可以防止意外访问敏感的 AWS 资源。
  • 应用程序和服务: 您可以通过调用 AssumeRole API 函数来授予应用程序和服务使用角色附加的权限的访问权限。 AssumeRole 函数返回与角色关联的临时安全凭证。 应用程序和服务只能执行角色允许的那些操作。 应用程序不能像控制台中的 IAM 用户那样退出角色,而是在停止使用临时凭证并恢复其原始凭证。
  • 联合用户: 联合用户可以使用身份提供者提供的临时凭证登录。 AWS 为用户提供一个 IDP(身份提供者)和与角色关联的临时凭证。 这些凭证授予用户访问权限。

以下是角色的情况

  • 以 IAM 用户的身份切换到另一个 AWS 账户中的角色,以访问您拥有的另一个账户中的资源。
    • 您可以授予您的 IAM 用户在您的 AWS 账户或不同账户中切换角色的权限。 例如,您有对您的组织来说非常重要的 Amazon EC2 实例。 您可以创建一个具有权限的角色,允许管理员在需要终止实例时切换到该角色,而不是直接授予用户终止实例的权限。
    • 您必须显式地授予用户承担该角色的权限。
    • 多因素身份验证角色可以添加到角色中,以便只有使用 MFA 登录的用户才能使用该角色。
    • 角色可以防止对敏感资源的意外更改,特别是如果您将它们与审计结合使用,以便仅在需要时才可以使用角色。
    • 一个账户中的 IAM 用户可以切换到相同或不同账户中的角色。 使用角色,用户可以访问角色允许的资源。 当用户切换到角色时,其原始权限将被删除。 如果用户退出角色,则会恢复其原始权限。
  • 提供对 AWS 服务的访问
    • AWS 服务使用角色来访问 AWS 资源。
    • 每个服务使用角色以及如何将角色分配给服务的方式都不同。
    • 假设一个 AWS 服务(如运行您的应用程序的 Amazon EC2 实例)想要向 AWS 资源(例如 Amazon S3 存储桶)发出请求,该服务必须具有安全凭证才能访问这些资源。 如果您将安全凭证直接嵌入到实例中,那么将凭证分发到多个实例会产生安全风险。 为了克服此类问题,您可以创建一个角色,该角色被分配给 Amazon EC2 实例,该实例授予访问资源的权限。
  • 向经过外部身份验证的用户提供访问权限。
    有时,用户在 AWS 之外具有身份,例如在您的公司目录中。 如果此类用户想要使用 AWS 资源,那么他们应该知道安全凭证。 在这种情况下,我们可以使用角色来指定第三方身份提供者 (IDP) 的权限。
    • 基于 SAML 的联合
      SAML 2.0(安全声明标记语言 2.0)是许多身份提供者使用的开放框架。 SAML 为用户提供了联合单点登录到 AWS 管理控制台的功能,以便用户可以登录到 AWS 管理控制台。
      基于 SAML 的联合如何工作
    • Web 身份联合
      假设您正在创建一个移动应用程序,该应用程序可以访问 AWS 资源,例如在移动设备上运行的游戏,但信息是使用 Amazon S3 和 DynamoDB 存储的。
      当您创建此类应用程序时,您需要向 AWS 服务发出请求,这些请求必须使用 AWS 访问密钥进行签名。 但是,建议不要使用长期 AWS 凭证,即使以加密形式也不行。 应用程序必须使用 Web 身份联合请求临时安全凭证,这些凭证在需要时动态创建。 这些临时安全凭证将映射到具有应用程序执行任务所需权限的角色。
      通过 Web 身份联合,用户不需要任何自定义登录代码或用户身份。 用户可以使用外部身份提供者登录,例如使用 Amazon、Facebook、Google 或其他 OpenID 登录。 登录后,用户将获得身份验证令牌,他们将交换该身份验证令牌以接收临时安全凭证。
  • 向第三方提供访问权限
    当第三方想要访问 AWS 资源时,您可以使用角色将访问权限委派给他们。 IAM 角色授予这些第三方访问 AWS 资源的权限,而无需共享任何安全凭证。
    第三方提供以下信息以创建角色
    • 第三方提供包含要使用您的角色的 IAM 用户的账户 ID。 当您为角色定义信任策略时,您需要将 AWS 账户 ID 指定为主体。
    • 第三方的外部 ID 用于与角色关联。 您需要指定外部 ID 以定义角色的信任策略。
    • 第三方使用权限来访问 AWS 资源。 权限与您定义信任策略时创建的角色相关联。 该策略定义了他们可以采取的操作以及他们可以使用哪些资源。

下一主题创建 IAM 角色