

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 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)。

若要設定軟體開發套件或工具以擔任角色，您必須先建立或識別要擔任的特定*角色*。IAM 角色由角色 Amazon Resource Name ([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>

若要設定軟體開發套件或工具以擔任角色，您必須先建立或識別要擔任的特定角色。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`。

使用 從 Amazon ECS 容器、Amazon EC2 執行個體或環境變數`credential_source`取得登入資料。

使用 來從另一個設定檔`source_profile`取得登入資料。 `source_profile`也支援角色鏈結，這是設定檔的階層，接著會使用 擔任的角色來擔任另一個角色。

當您在設定檔中指定此項目時，軟體開發套件或工具會自動為您進行對應的 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)中的 。