

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 역할 보안 인증 제공자 수임
<a name="feature-assume-role-credentials"></a>

**참고**  
설정 페이지의 레이아웃을 이해하거나 다음에 나오는 **Support AWS SDKs**[이 안내서의 설정 페이지의 이해](settings-reference.md#settingsPages).

역할 수임에는 액세스 권한이 없을 수 있는 AWS 리소스에 액세스하기 위해 일련의 임시 보안 보안 인증을 사용하는 것이 포함됩니다. 이러한 임시 보안 인증은 액세스 키 ID, 보안 액세스 키 및 보안 토큰으로 구성됩니다.

역할을 수임하도록 SDK 또는 도구를 설정하려면 먼저 수임할 특정 *역할*을 만들거나 식별해야 합니다. IAM 역할은 Amazon 리소스 이름([ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html))역할로 고유하게 식별됩니다. 역할은 다른 엔티티와 신뢰 관계를 구축합니다. 역할을 사용하는 신뢰할 수 있는 엔터티는 AWS 서비스, 다른 AWS 계정, 웹 자격 증명 공급자 또는 OIDC 또는 SAML 페더레이션일 수 있습니다.

IAM 역할을 식별한 후 해당 역할을 신뢰할 수 있는 경우 해당 역할에서 부여한 권한을 사용하도록 SDK 또는 도구를 구성할 수 있습니다. 이렇게 하려면 다음 설정을 사용하십시오.

이러한 설정 사용을 시작하는 방법에 대한 지침은 이 안내서의 [자격 AWS 증명이 있는 역할을 수임하여 AWS SDKs 및 도구 인증](access-assume-role.md)를 참조하세요.

## 역할 보안 인증 제공자 수임 설정
<a name="feature-assume-role-credentials-settings"></a>

다음을 사용하여 이 기능을 구성하십시오.

**`credential_source` - 공유 AWS `config` 파일 설정**  
SDK나 도구가 `role_arn` 파라미터로 지정된 역할을 수임하기 위한 권한을 가진 보안 인증을 인증을 찾을 수 있는 위치를 지정하기 위해 Amazon EC2 인스턴스 또는 Amazon Elastic Container Service 컨테이너 내에서 사용됩니다.  
**기본값:** 없음  
**유효값:**  
+ **환경** – SDK나 도구가 [`AWS_ACCESS_KEY_ID` 및 `AWS_SECRET_ACCESS_KEY`](feature-static-credentials.md) 환경 변수에서 소스 보안 인증을 검색하도록 지정합니다.
+ **Ec2InstanceMetadata** – SDK 또는 도구가 [EC2 인스턴스 프로파일에 연결된 IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)을 사용하여 소스 보안 인증을 가져오도록 지정합니다.
+ **EcsContainer** - SDK 또는 도구가 소스 자격 증명을 얻기 위해 [Amazon ECS 컨테이너에 연결된 IAM 역할](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html) 또는 [Amazon EKS 컨테이너에 연결된 IAM 역할](https://docs.aws.amazon.com/eks/latest/userguide/security-iam-service-with-iam.html)을 사용하도록 지정합니다.
`credential_source`과 `source_profile` 모두를 동일한 프로파일에서 지정할 수 없습니다.  
보안 인증을 Amazon EC2에서 소싱해야 함을 나타내도록 `config` 파일에 설정하는 예:  

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

**`duration_seconds` - 공유 AWS `config` 파일 설정**  
역할 세션의 최대 기간(초)을 지정합니다.  
이 설정은 프로파일에서 역할 수임을 지정한 경우에만 적용됩니다.  
**기본값:** 3600초(1시간)  
**유효한 값:** 이 값의 범위는 900초(15분)부터 해당 역할에 대한 구성된 최대 세션 기간 설정(최대값: 43200초 또는 12시간)까지 가능합니다. 자세한 내용은 *IAM 사용 설명서*의 [역할의 최대 세션 기간 설정 보기](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session)를 참조하십시오.  
`config` 파일에서 이를 설정하는 예:  

```
duration_seconds = 43200
```

**`external_id` - 공유 AWS `config` 파일 설정**  
타사에서 고객 계정의 역할을 수임하는 데 사용하는 고유한 식별자를 지정합니다.  
이 설정은 프로파일에서 역할을 수임하도록 지정하고 역할에 대한 신뢰 정책에서 `ExternalId`에 대한 값을 필요로 하는 경우에만 적용됩니다. 값은 프로파일이 역할을 지정할 때 `AssumeRole` 작업에 전달되는 `ExternalId` 파라미터에 매핑됩니다.  
**기본값:** 없음.  
**유효한 값:** *IAM 사용 설명서*의 [AWS 리소스에 대한 액세스 권한을 타사에 부여할 때 외부 ID를 사용하는 방법을 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html).  
`config` 파일에서 이를 설정하는 예:  

```
external_id = unique_value_assigned_by_3rd_party
```

**`mfa_serial` - 공유 AWS `config` 파일 설정**  
사용자가 역할 수임 시 사용해야 하는 다중 인증(MFA)장치의 ID 또는 일련 번호를 지정합니다.  
해당 역할에 대한 신뢰 정책에 MFA 인증을 필요로 하는 조건이 포함된 역할을 수임하는 경우 필요합니다. MFA에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM에서의AWS 다단계 인증](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)을 참고하세요.  
**기본값:** 없음.  
**유효한 값:** 이 값은 하드웨어 디바이스용 일련 번호(예: `GAHT12345678`)또는 가상 MFA 디바이스용 Amazon 리소스 이름(ARN)(예: )일 수 있습니다. ARN 형식은 `arn:aws:iam::account-id:mfa/mfa-device-name`입니다.  
`config` 파일에서 이를 설정하는 예:  
이 예제는 계정에 대해 생성되고 특정 사용자에 대해 활성화된 `MyMFADevice`라는 이름의 가상 MFA 장치를 사용한다고 가정합니다.  

```
mfa_serial = arn:aws:iam::123456789012:mfa/MyMFADevice
```

**`role_arn` - 공유 AWS `config` 파일 설정`AWS_ROLE_ARN` - 환경 변수`aws.roleArn` - JVM 시스템 속성: Java/Kotlin만 해당**  
이 프로파일을 사용하여 요청된 작업을 수행하는 데 사용할 IAM 역할의 Amazon 리소스 이름(ARN)을 지정합니다.  
**기본값:** 없음.  
**유효한 값:** 이 값은 다음과 같은 형식의 IAM 역할의 ARN이어야 합니다. `arn:aws:iam::account-id:role/role-name`   
 또한 다음 설정 중 **하나**를 지정해야 합니다.  
+ `source_profile` — 이 프로파일에서 역할을 수임할 권한이 있는 보안 인증을 찾는 데 사용할 다른 프로파일을 식별합니다.
+ `credential_source` — 현재 환경 변수로 식별되는 보안 인증 또는 Amazon EC2 인스턴스 프로파일 또는 Amazon ECS 컨테이너 인스턴스에 첨부된 보안 인증을 사용합니다.
+ `web_identity_token_file` — 모바일 또는 웹 애플리케이션에서 인증된 사용자에 대해 퍼블릭 ID 공급자 또는 OpenID Connect(OIDC)호환 보안 인증 공급자를 사용합니다.

**`role_session_name` - 공유 AWS `config` 파일 설정`AWS_ROLE_SESSION_NAME` - 환경 변수`aws.roleSessionName` - JVM 시스템 속성: Java/Kotlin만 해당**  
역할 세션에 연결할 이름을 지정합니다. 이 이름은 이 세션과 연결된 항목에 대한 AWS CloudTrail 로그에 나타나며, 감사할 때 유용할 수 있습니다. 세부 정보는 *AWS CloudTrail 사용 설명서*의 [CloudTrail userIdentity 요소](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)를 참조하세요.  
**기본값:** 선택적 파라미터입니다. 이 값을 제공하지 않은 경우 프로파일이 역할을 수임할 때 세션 이름이 자동으로 생성됩니다.  
**유효한 값:** AWS CLI 또는 AWS API가 사용자를 대신하여 `AssumeRole` 작업(또는 작업과 같은 `AssumeRoleWithWebIdentity` 작업)을 호출할 때 `RoleSessionName` 파라미터에 제공됩니다. 값은 쿼리할 수 있는 수임된 역할 사용자 Amazon 리소스 이름(ARN)의 일부가 되며, 이 프로파일에서 간접 호출한 작업에 대한 CloudTrail 로그 항목의 일부로 표시됩니다.  
 `arn:aws:sts::123456789012:assumed-role/my-role-name/my-role_session_name`.  
`config` 파일에서 이를 설정하는 예:  

```
role_session_name = my-role-session-name
```

**`source_profile` - 공유 AWS `config` 파일 설정**  
보안 인증이 원래 프로파일의 `role_arn` 설정에 지정된 역할을 수임하는 데 사용되는 다른 프로파일을 지정합니다. 공유 AWS `config` 및 `credentials` 파일에서 프로필이 사용되는 방법을 이해하려면 섹션을 참조하세요[공유 `config` 및 `credentials` 파일](file-format.md).  
역할 수임 프로파일이기도 한 프로파일을 지정하는 경우 보안 인증을 완전히 확인하기 위해 각 역할이 순차적으로 수임됩니다. SDK가 보안 인증이 있는 프로파일을 발견하면 이 체인이 중지됩니다. 역할 체인은 AWS CLI 또는 AWS API 역할 세션을 최대 1시간으로 제한하며 늘릴 수 없습니다. 자세한 내용은 *IAM 사용 설명서*의 [역할 용어 및 개념](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)을 참조하십시오.  
**기본값:** 없음.  
**유효한 값:** `config` 및 `credentials` 파일에 정의된 프로파일 이름으로 구성된 텍스트 문자열입니다. 또한 현재 프로파일에서 `role_arn`의 값도 지정해야 합니다.  
`credential_source`과 `source_profile` 모두를 동일한 프로파일에서 지정할 수 없습니다.  
구성 파일에서 이를 설정하는 예:  

```
[profile A]
source_profile = B
role_arn =  arn:aws:iam::123456789012:role/RoleA
role_session_name = ProfileARoleSession
                
[profile B]
credential_process = ./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_ID
```
앞선 예제에서 `A` 프로파일은 SDK나 도구가 연결된 `B` 프로파일의 자격 증명을 자동으로 조회하도록 지시합니다. 이 경우 `B` 프로파일은 [IAM Roles Anywhere를 사용하여 AWS SDKs 및 도구 인증](access-rolesanywhere.md)에서 제공하는 자격 증명 도우미 도구를 사용하여 AWS SDK에 필요한 자격 증명을 가져옵니다. 이러한 임시 보안 인증은 코드에서 AWS 리소스에 액세스하기 위해 사용됩니다. 지정된 역할에는 명령 AWS 서비스또는 API 메서드와 같이 요청된 코드를 실행할 수 있도록 허용하는 IAM 권한 정책이 연결되어 있어야 합니다. 프로파일 `A`가 수행하는 모든 작업에는 역할 세션 이름이 CloudTrail 로그에 기록됩니다.  
역할 체이닝의 두 번째 예로, Amazon Elastic Compute Cloud 인스턴스에서 애플리케이션을 실행하고 있고 그 애플리케이션이 다른 역할을 수임하도록 하려는 경우, 다음 구성을 사용할 수 있습니다.  

```
[profile A]
source_profile = B
role_arn =  arn:aws:iam::123456789012:role/RoleA
role_session_name = ProfileARoleSession
                
[profile B]
credential_source=Ec2InstanceMetadata
```
프로파일 `A`는 Amazon EC2 인스턴스의 자격 증명을 사용해 지정된 역할을 수임하며, 자격 증명을 자동으로 갱신합니다.  


**`web_identity_token_file` - 공유 AWS `config` 파일 설정`AWS_WEB_IDENTITY_TOKEN_FILE` - 환경 변수`aws.webIdentityTokenFile` - JVM 시스템 속성: Java/Kotlin만 해당**  
[지원되는 OAuth 2.0 공급자](https://wikipedia.org/wiki/List_of_OAuth_providers) 또는 [OpenID Connect ID 공급자](https://openid.net/developers/certified/)의 액세스 토큰을 포함하는 파일의 경로를 지정합니다.  
이 설정을 사용하면 [Google](https://developers.google.com/identity/protocols/OAuth2), [Facebook](https://developers.facebook.com/docs/facebook-login/overview) 및 [Amazon](https://login.amazon.com/) 등과 같은 웹 ID 페더레이션 공급자를 사용하여 인증할 수 있습니다. SDK 또는 개발자 도구는 이 파일의 내용을 로드하고 사용자를 대신하여 `AssumeRoleWithWebIdentity` 작업을 직접 호출할 때 `WebIdentityToken` 인수로서 전달합니다.  
**기본값:** 없음.  
**유효한 값:** 이 값은 경로 및 파일 이름이어야 합니다. 파일에는 ID 공급자가 제공한 OAuth 2.0 액세스 토큰 또는 OpenID Connect ID 토큰을 포함해야 합니다. 상대 경로는 프로세스의 작업 디렉터리를 기준으로 처리됩니다.

## AWS SDKs 도구 지원
<a name="assume-role-sdk-compat"></a>

다음 SDK는 이 주제에서 설명하는 기능 및 설정을 지원합니다. 모든 일부 예외가 기록됩니다. 모든 JVM 시스템 속성 설정은 AWS SDK for Java 및 AWS SDK for Kotlin 에서만 지원됩니다.


| SDK | 지원됨 | 참고 또는 추가 정보 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 예 |  | 
| [SDK for C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 부분적 | credential\$1source이 지원되지 않음. duration\$1seconds이 지원되지 않음. mfa\$1serial이 지원되지 않음. | 
| [SDK for Go V2 (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 예 |  | 
| [SDK for Go 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 예 | 공유 config 파일 설정을 사용하려면 구성 파일에서 로드를 켜야 합니다. [세션](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)을 참조하십시오. | 
| [SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 부분적 | mfa\$1serial은 지원되지 않습니다. duration\$1seconds는 지원되지 않습니다. | 
| [SDK for Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 부분적 | credential\$1source는 지원되지 않습니다. mfa\$1serial은 지원되지 않습니다. JVM 시스템 속성은 지원되지 않습니다. | 
| [SDK for JavaScript 3.x](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 예 |  | 
| [SDK for JavaScript 2.x](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 부분적 | credential\$1source이 지원되지 않음. | 
| [SDK for Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 예 |  | 
| [.NET 4.x용 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 예 |  | 
| [SDK for .NET 3.x](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 예 |  | 
| [SDK for PHP 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 예 |  | 
| [SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 예 |  | 
| [SDK for Ruby 3.x](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 예 |  | 
| [SDK for Rust](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 예 |  | 
| [SDK for Swift](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 예 |  | 
| [PowerShell V5용 도구](https://docs.aws.amazon.com/powershell/latest/userguide/) | 예 |  | 
| [PowerShell V4용 도구](https://docs.aws.amazon.com/powershell/v4/userguide/) | 예 |  | 