

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 假设一个拥有身份验证 AWS 凭证 AWS SDKs 和工具的角色
<a name="access-assume-role"></a>

假设角色涉及使用一组临时安全凭证来访问您原本无法访问的 AWS 资源。这些临时凭证由访问密钥 ID、秘密访问密钥和安全令牌组成。要了解有关 AWS Security Token Service （AWS STS）API 请求的更多信息，请参阅《AWS Security Token Service API 参考》**中的[操作](https://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html)。

要设置您的 SDK 或工具来代入角色，必须先创建或标识要代入的特定*角色*。IAM 角色由角色 Amazon 资源名称（[ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)）进行唯一标识。角色与另一个实体建立信任关系。使用该角色的可信实体可能是一个 AWS 服务 或另一个实体 AWS 账户。有关 IAM 角色的更多一般信息，请参阅*《IAM 用户指南》*中的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)。

标识 IAM 角色后，如果您受到该角色的信任，则可以将您的 SDK 或工具配置为使用该角色授予的权限。

**注意**  
 AWS 最佳做法是尽可能使用区域终端节点并配置您的终端节点[AWS 区域](feature-region.md)。

## 代入 IAM 角色
<a name="credOrSourceAssumeRole"></a>

担任角色时， AWS STS 返回一组临时安全证书。这些凭证来自另一个配置文件或运行代码的实例或容器。此类代入角色的最常见使用场景是，当您拥有一个账户的 AWS 凭证，但您的应用程序需要访问另一个账户中的资源时。

### 步骤 1：设置 IAM 角色
<a name="credOrSourceAssumeRole_step1"></a>

要设置您的 SDK 或工具来代入角色，必须先创建或标识要代入的特定角色。IAM 角色使用角色 [ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 进行唯一标识。角色与另一个实体建立信任关系，通常是在您的账户内或用于跨账户访问。要了解更多信息，请参阅 *IAM 用户手册*中的[创建 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)。

### 步骤 2：配置 SDK 或工具
<a name="credOrSourceAssumeRole_step2"></a>

将 SDK 或工具配置为从 `credential_source` 或 `source_profile` 获取凭证。

`credential_source` 用于从 Amazon ECS 容器、Amazon EC2 实例或环境变量中获取凭证。

`source_profile` 用于从另一个配置文件获取凭证。`source_profile` 还支持角色链，即配置文件的层次结构，然后使用代入的角色来代入另一个角色。

当您在配置文件中指定此项时，SDK 或工具会自动为您调用相应 AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)的 API。要通过担任角色来检索和使用临时证书，请在共享 AWS `config`文件中指定以下配置值。有关这些设置各自的更多信息，请参阅 [代入角色凭证提供者设置](feature-assume-role-credentials.md#feature-assume-role-credentials-settings) 节。
+ `role_arn` - 来自您在步骤 1 中创建的 IAM 角色
+ 配置 `credential_source` 或 `source_profile`
+ （可选）`duration_seconds`
+ （可选）`external_id`
+ （可选）`mfa_serial`
+ （可选）`role_session_name` 

以下示例显示了共享 `config` 文件中两个代入角色选项的配置：

```
role_arn = arn:aws:iam::123456789012:role/my-role-name
credential_source = Ec2InstanceMetadata
```

```
[profile-with-user-that-can-assume-role]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

[profile dev]
region = us-east-1
output = json
role_arn = arn:aws:iam::123456789012:role/my-role-name
source_profile = profile-with-user-that-can-assume-role
role_session_name = my_session
```

有关所有代入角色凭证提供程序设置的详细信息，请参阅本指南中的 [代入角色凭证提供者](feature-assume-role-credentials.md)。