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

切换到 IAM 角色 (AWS Command Line Interface)

角色 指定可用于访问所需的 AWS 资源的一组权限。在这种意义上,它类似于 AWS Identity and Access Management (IAM) 中的用户。作为用户登录时,您会获取一组特定权限。但是,您没有登录到角色,不过一旦以用户身份登录,您就可以切换为角色。这会临时搁置原始用户权限,而向您提供分配给角色的权限。角色可以在您自己的账户中或任何其他 AWS 账户中。有关角色、其权益以及如何创建和配置角色的更多信息,请参阅IAM 角色创建 IAM 角色。要了解在担任角色时使用的各种方法,请参阅使用 IAM 角色

重要

不会累积您的 IAM 用户和担任的任何角色的权限。一次只有一组权限处于活动状态。在担任某个角色时,您将临时放弃以前的用户或角色权限并使用为该角色分配的权限。退出该角色后,您的用户权限将自动恢复。

在以 IAM 用户或已使用角色的外部验证的用户 (SAMLOIDC) 身份登录后,您可以使用角色运行 AWS CLI 命令。此外,您还可以使用角色从通过实例配置文件附加到角色的 Amazon EC2 实例中运行 AWS CLI 命令。您还可以使用角色链,它使用一个角色担任另一个角色。在以 AWS 账户根用户身份登录时,您无法担任角色。

默认情况下,您的角色会话持续 1 小时。在使用 assume-role* CLI 操作担任该角色时,您可以为 duration-seconds 参数指定一个值。该值的范围在 900 秒 (15 分钟) 到角色的最大会话持续时间设置之间。要了解如何查看您的角色的最大值,请参阅查看角色的最大会话持续时间设置

如果使用角色链,您的会话持续时间限制为最多 1 小时。如果您随后使用 duration-seconds 参数提供大于 1 小时的值,操作将失败。

假设您有一个在开发环境中工作的 IAM 用户,并且您有时需要通过 AWS CLI 在命令行上使用生产环境。您已经有一组可用的访问密钥凭证。这可能是分配给您的标准 IAM 用户的访问密钥对。或者,如果您作为联合用户登录,这可能是最初为您分配的角色的访问密钥对。如果您的当前权限授予您代入特定角色的能力,则可以在 AWS CLI 配置文件的“配置文件”中标识该角色。然后,使用指定角色而非原始身份的权限运行该命令。请注意,在指定该配置文件从而在 AWS CLI 命令中使用新角色时,您无法同时使用开发账户中的原始权限,因为一次仅一组权限可生效。

注意

出于安全原因,您可以使用 AWS CloudTrail 审核角色在账户中的使用。为在 CloudTrail 日志中标识角色的操作,您可以使用角色会话名称。在 AWS CLI 按照本主题所述代表用户担任某个角色时,将自动创建一个 AWS-CLI-session-nnnnnnnn 形式的角色会话名称。其中,nnnnnnnn 是一个表示 Unix 纪元时间 (自 1970 年 1 月 1 日午夜 UTC 算起的秒数) 的整数。有关更多信息,请参阅AWS CloudTrail User Guide 中的 CloudTrail 事件引用

使用 AWS CLI 切换到角色

  1. 如果您从未使用过 AWS CLI,则您必须先配置默认的 CLI 配置文件。打开命令提示符并将您的 AWS CLI 安装设置为使用来自 IAM 用户或联合角色的访问密钥。有关更多信息,请参阅 AWS Command Line Interface 用户指南 中的配置 AWS Command Line Interface

    $ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json
  2. 在 .aws/config 文件中为角色创建新的配置文件。以下示例创建一个名为“prodaccess”的配置文件,该配置文件将切换到 123456789012 账户中的 ProductionAccessRole 角色。您从创建该角色的账户管理员处获取角色 ARN。在调用此配置文件时,AWS CLI 使用 source_profile 的凭证请求该角色的凭证。因此,引用为 source_profile 的身份必须拥有 role_arn 中指定的角色的 sts:AssumeRole 权限。

    [profile prodaccess] role_arn = arn:aws-cn:iam::123456789012:role/ProductionAccessRole source_profile = default
  3. 在创建新的配置文件后,任何指定参数 --profile prodaccess 的 AWS CLI 命令都将在附加到 IAM 角色 ProductionAccessRole 而非默认用户的权限下运行。

    $ aws iam list-users --profile prodaccess

    如果分配给 ProductionAccessRole 的权限允许列出当前 AWS 账户中的用户,则此命令有效。

  4. 要返回到原始凭证授予的权限,请运行不带 --profile 参数的命令。AWS CLI 将恢复使用您在步骤 1中配置的默认配置文件中的凭证。

有关更多信息,请参阅 AWS Command Line Interface 用户指南 中的代入角色