

# IAM에서 SAML ID 공급자 생성
<a name="id_roles_providers_create_saml"></a>

IAM SAML 2.0 자격 증명 공급자는 [SAML 2.0(Security Assertion Markup Language 2.0)](https://wiki.oasis-open.org/security) 표준을 지원하는 외부 자격 증명 공급자(IdP) 서비스를 기술하는 IAM의 엔터티입니다. 사용자가 AWS 리소스에 액세스할 수 있도록 Shibboleth 또는 Active Directory 페더레이션 서비스와 같은 SAML 호환 IdP와 AWS 간에 신뢰를 구축하고자 할 때 IAM ID 제공업체를 사용합니다. IAM SAML 자격 증명 공급자는 IAM 신뢰 정책에서 보안 주체로 사용됩니다.

이 시나리오에 대한 자세한 내용은 [SAML 2.0 연동](id_roles_providers_saml.md)를 참조하세요.

AWS Management Console에서 또는 AWS CLI, Tools for Windows PowerShell 또는 AWS API 호출을 사용하여 IAM 자격 증명 공급자를 생성하고 관리할 수 있습니다.

SAML 공급자를 생성한 후에는 1개 이상의 IAM 역할을 생성해야 합니다. 역할은 AWS의 자격 증명으로서 자신만의 고유한 자격 증명이 없지만(사용자가 그러하듯이), 이 컨텍스트에서는 IdP에서 인증한 SAML 페더레이션 보안 주체에게 역할이 동적으로 할당됩니다. 그 역할은 조직의 IdP가 AWS에 액세스하기 위해 임시 보안 인증을 요청할 수 있도록 허용합니다. 역할에 할당된 정책은 사용자가 AWS에서 허용된 작업이 무엇인지 결정합니다. SAML 연동을 위한 역할을 생성하려면 [타사 ID 공급자에 대한 역할 생성](id_roles_create_for-idp.md) 섹션을 참조하세요.

마지막으로 역할을 만든 후에는 AWS에 대한 정보와 SAML 페더레이션 보안 주체가 사용하기를 원하는 역할로 IdP를 구성하여 SAML 신뢰를 완료합니다. 이를 가리켜 IdP와 AWS 간 신뢰 당사자 신뢰 구성이라고 합니다. 신뢰 당사자 신뢰를 구성하려면 [신뢰 당사자 신뢰 및 클레임 추가를 통해 SAML 2.0 IdP 구성](id_roles_providers_create_saml_relying-party.md) 섹션을 참조하세요.

**Topics**
+ [사전 조건](#idp-manage-identityprovider-prerequisites)
+ [IAM SAML 자격 증명 공급자 생성 및 관리(콘솔)](#idp-manage-identityprovider-console)
+ [SAML 암호화 키 관리](#id_federation_manage-saml-encryption)
+ [IAM SAML 자격 증명 공급자 생성(AWS CLI)](#idp-create-identityprovider-CLI)
+ [IAM SAML 자격 증명 공급자 생성 및 관리(AWS API)](#idp-create-identityprovider-API)
+ [다음 단계](#id_roles_create-for-saml-next-steps)

## 사전 조건
<a name="idp-manage-identityprovider-prerequisites"></a>

SAML 자격 증명 공급자를 생성하려면 IdP에서 가져온 다음 정보가 있어야 합니다.
+ IdP에서 SAML 메타데이터 문서를 가져옵니다. 이 문서에는 발급자 이름, 만료 정보 및 IdP에서 가져온 SAML 인증 응답(어설션)을 확인하는 데 사용할 수 있는 키가 포함되어 있습니다. 메타데이터 문서를 생성하려면 외부 IdP가 제공하는 자격 증명 관리 소프트웨어를 사용하세요.
**중요**  
이 메타데이터 파일에는 발급자 이름, 만료 정보 및 IdP에서 가져온 SAML 인증 응답(어설션)을 확인하는 데 사용할 수 있는 키가 포함되어 있습니다. 메타데이터 파일은 바이트 순서 표시(BOM)가 없는 UTF-8 형식으로 인코딩되어야 합니다. BOM을 제거하려면 Notepad\+\+와 같은 텍스트 편집 도구를 사용해 파일을 UTF-8로 인코딩합니다.  
SAML 메타데이터 문서의 일부로 포함된 X.509 인증서는 1,024비트 이상의 키 크기를 사용해야 합니다. 또한 X.509 인증서에는 반복되는 확장이 없어야 합니다. 확장을 사용할 수 있지만 확장은 인증서에 한 번만 나타날 수 있습니다. X.509 인증서가 두 조건 중 하나를 충족하지 못하면 IdP 생성에 실패하고 'Unable to parse metadata' 오류를 반환합니다.  
[SAML V2.0 Metadata Interoperability Profile Version 1.0](https://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-os.html)의 정의에 따라, IAM은 SAML 메타데이터 문서의 X.509 인증서 만료를 평가하거나 이에 대해 조치를 취하지 않습니다. 만료된 X.509 인증서가 우려되는 경우 조직의 거버넌스 및 보안 정책에 따라 인증서 만료 날짜를 모니터링하고 인증서를 교체하는 것이 좋습니다.
+ SAML 암호화를 사용하도록 선택하는 경우 IdP를 사용하여 프라이빗 키 파일을 생성하고 이 파일을 .pem 파일 형식으로 IAM SAML 구성에 업로드해야 합니다. AWS STS는 IdP가 사용하는 퍼블릭 키에 해당하는 SAML 응답을 복호화하기 위해 이 프라이빗 키가 필요합니다. 다음 알고리즘은 지원됩니다.
  + 암호화 알고리즘
    + AES-128
    + AES-256
    + RSA-OAEP
  + 키 전송 알고리즘
    + AES-CBC
    + AES-GCM

  프라이빗 키를 생성하는 단계는 ID 제공업체의 설명서를 참조하세요.
**참고**  
IAM Identity Center와 Amazon Cognito는 IAM SAML 자격 증명 공급자의 암호화된 SAML 어설션을 지원하지 않습니다. Amazon Cognito 사용자 풀을 사용하여 Amazon Cognito 자격 증명 풀 페더레이션에 암호화된 SAML 어설션 지원을 간접적으로 추가할 수 있습니다. 사용자 풀에는 IAM SAML 페더레이션과 독립적이며 [SAML 서명 및 암호화](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html)를 지원하는 SAML 페더레이션이 있습니다. 이 기능이 자격 증명 풀로 직접 확장되지는 않지만 사용자 풀은 자격 증명 풀의 IdP가 될 수 있습니다. 자격 증명 풀에서 SAML 암호화를 사용하려면 암호화가 적용된 SAML 공급자를 자격 증명 풀의 IdP인 사용자 풀에 추가하세요.  
SAML 공급자는 사용자 풀이 제공하는 키를 사용하여 SAML 어설션을 암호화할 수 있어야 합니다. 사용자 풀은 IAM이 제공한 인증서로 암호화된 어설션을 수락하지 않습니다.

필요한 SAML 메타데이터 문서를 생성하는 방법을 비롯해, 사용 가능한 다수의 IdP를 구성하여 AWS에서 작동되도록 하는 방법에 대한 지침은 [서드 파티 SAML 솔루션 공급자를 AWS와 통합](id_roles_providers_saml_3rd-party.md) 섹션을 참조하세요.

SAML 페더레이션에 대한 도움이 필요하면 [SAML 페더레이션 문제 해결](troubleshoot_saml.md)을 참조하세요.

## IAM SAML 자격 증명 공급자 생성 및 관리(콘솔)
<a name="idp-manage-identityprovider-console"></a>

AWS Management Console을 사용하여 IAM SAML 자격 증명 공급자를 생성, 업데이트, 삭제할 수 있습니다. SAML 페더레이션에 대한 도움이 필요하면 [SAML 페더레이션 문제 해결](troubleshoot_saml.md)을 참조하세요.

**IAM SAML 자격 증명 공급자를 생성하려면(콘솔)**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 [**자격 증명 공급자(Identity providers)**]를 선택한 다음 [**공급자 추가(Add provider)**]를 선택합니다.

1. [**공급자 구성(Configure provider)**]에 대해 [**SAML**]을 선택합니다.

1. 자격 증명 공급자의 이름을 입력합니다.

1. [**메타데이터 문서(Metadata document)**에서 [**파일 선택(Choose file)**을 선택하고 [사전 조건](#idp-manage-identityprovider-prerequisites)에서 다운로드한 SAML 메터데이터 문서를 지정합니다.
**참고**  
SAML 메타데이터 문서의 `validUntil` 또는 `cacheDuration` 속성은 ID 공급자의 **유효 종료** 날짜를 정의합니다. SAML 메타데이터 문서에 유효 기간 속성이 포함되어 있지 않으면 **유효 종료** 날짜가 X.509 인증서 만료 날짜와 일치하지 않습니다.  
IAM은 SAML 메타데이터 문서에서 X.509 인증서 만료를 평가하거나 조치를 취하지 않습니다. 만료된 X.509 인증서가 우려되는 경우 조직의 거버넌스 및 보안 정책에 따라 인증서 만료 날짜를 모니터링하고 인증서를 교체하는 것이 좋습니다.

1. (선택 사항) **SAML 암호화**에서 **파일 선택**을 선택하고 [사전 조건](#idp-manage-identityprovider-prerequisites)에서 생성한 프라이빗 키 파일을 선택합니다. IdP로부터 암호화된 요청만 수락하려면 **암호화 필요**를 선택합니다.

1. (선택 사항) **태그 추가(Add tags)**에 키 값 페어를 추가하여 IdP를 식별하고 구성할 수 있습니다. 태그를 사용하여 AWS 리소스에 대한 액세스를 제어할 수도 있습니다. SAML 자격 증명 공급자의 태깅에 대한 자세한 내용은 [IAM SAML ID 제공업체 태깅](id_tags_saml.md) 섹션을 참조하세요.

   **태그 추가**를 선택합니다. 각 태그 키 값 페어의 값을 입력합니다.

1. 제공한 정보를 확인합니다. 완료되면 [**공급자 추가(Add provider)**]를 선택합니다.

1. ID 제공업체에 IAM 역할을 할당하세요. 이 역할은 자격 증명 공급자가 관리하는 외부 사용자 자격 증명에 계정의 AWS 리소스에 대한 액세스 권한을 부여합니다. ID 연동을 위한 역할을 생성하는 방법에 대한 자세한 내용은 [타사 ID 공급자에 대한 역할 생성](id_roles_create_for-idp.md) 섹션을 참조하세요.
**참고**  
역할 신뢰 정책에 사용되는 SAML IDP는 해당 역할이 속한 계정과 동일한 계정에 있어야 합니다.

**SAML 공급자를 삭제하려면(콘솔)**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 [**자격 증명 공급자(Identity providers)**]를 선택합니다.

1. 삭제할 자격 증명 공급자 옆의 라디오 버튼을 선택합니다.

1. **삭제**를 선택합니다. 새 창이 열립니다.

1. 필드에 단어 `delete`를 입력하여 공급자 삭제를 확인합니다. 그런 다음 **삭제**를 선택합니다.

## SAML 암호화 키 관리
<a name="id_federation_manage-saml-encryption"></a>

외부 IdP의 SAML 응답에서 암호화된 어설션을 수신하도록 IAM SAML 공급자를 구성할 수 있습니다. 사용자는 `[sts:AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)` 호출을 통해 암호화된 SAML 어설션을 사용하여 AWS에서 역할을 맡을 수 있습니다.

SAML 암호화는 어설션이 중개자 또는 서드 파티를 통해 전달될 때 보안을 유지합니다. 또한 이 기능을 사용하면 FedRAMP 또는 SAML 어설션의 암호화를 요구하는 내부 규정 준수 정책 요구 사항을 충족할 수 있습니다.

IAM SAML 자격 증명 공급자를 구성하려면 [IAM에서 SAML ID 공급자 생성](#id_roles_providers_create_saml) 섹션을 참조하세요. SAML 페더레이션에 대한 도움이 필요하면 [SAML 페더레이션 문제 해결](troubleshoot_saml.md)을 참조하세요.

### SAML 암호화 키 교체
<a name="id_federation_manage-saml-keys-rotate"></a>

IAM은 사용자가 IAM SAML 제공업체에 업로드한 프라이빗 키를 사용하여 IdP의 암호화된 SAML 어설션을 복호화합니다. 각 자격 증명 공급자마다 최대 2개의 프라이빗 키 파일을 저장할 수 있으므로 필요에 따라 프라이빗 키를 교체할 수 있습니다. 2개의 파일이 저장되면 각 요청이 먼저 가장 최근의 **다음에 추가됨** 날짜로 복호화를 시도한 다음 IAM이 가장 오래된 **다음에 추가됨** 날짜로 요청 복호화를 시도합니다.

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **자격 증명 공급자**를 선택한 다음 목록에서 공급자를 선택합니다.

1. **SAML 암호화** 탭을 선택하고 **새 키 추가**를 선택합니다.

1. **파일 선택**을 선택하고 IdP에서 다운로드한 프라이빗 키를 .pem 파일로 업로드한 다음 **키 추가**를 선택합니다.

1. **SAML 복호화를 위한 프라이빗 키** 섹션에서 만료된 프라이빗 키 파일을 선택하고 **제거**를 선택합니다. 첫 번째 어설션 복호화 시도가 성공하려면 새 프라이빗 키를 추가한 후 만료된 프라이빗 키를 제거하는 것이 좋습니다.

## IAM SAML 자격 증명 공급자 생성(AWS CLI)
<a name="idp-create-identityprovider-CLI"></a>

AWS CLI를 사용하여 SAML 공급자를 생성, 업데이트, 삭제할 수 있습니다. SAML 페더레이션에 대한 도움이 필요하면 [SAML 페더레이션 문제 해결](troubleshoot_saml.md)을 참조하세요.

**IAM 자격 증명 공급자를 생성하고 메타데이터 문서를 업로드하려면(AWS CLI)**
+ 다음 명령을 실행합니다. [https://docs.aws.amazon.com/cli/latest/reference/iam/create-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-saml-provider.html) 

**IAM SAML 자격 증명 공급자를 업데이트하려면(AWS CLI)**

메타데이터 파일과 SAML 암호화 설정을 업데이트하고 IAM SAML 공급자의 프라이빗 키 복호화 파일을 교체할 수 있습니다. 프라이빗 키를 교체하려면 새 프라이빗 키를 추가한 다음 별도의 요청에서 이전 키를 제거합니다. 프라이빗 키 교체에 대한 자세한 내용은 [SAML 암호화 키 관리](#id_federation_manage-saml-encryption) 섹션을 참조하세요.
+ 다음 명령을 실행합니다. [https://docs.aws.amazon.com/cli/latest/reference/iam/update-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-saml-provider.html) 

**기존 IAM 자격 증명 공급자를 태깅하려면(AWS CLI)**
+ 다음 명령을 실행합니다. [https://docs.aws.amazon.com/cli/latest/reference/iam/tag-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-saml-provider.html) 

**기존 IAM 자격 증명 공급자의 태그를 나열하려면(AWS CLI)**
+ 다음 명령을 실행합니다. [https://docs.aws.amazon.com/cli/latest/reference/iam/list-saml-provider-tags.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-saml-provider-tags.html) 

**기존 IAM 자격 증명 공급자에서 태그를 제거하려면(AWS CLI)**
+ 다음 명령을 실행합니다. [https://docs.aws.amazon.com/cli/latest/reference/iam/untag-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-saml-provider.html) 

**IAM SAML 자격 증명 공급자를 삭제하려면(AWS CLI)**

1. (선택 사항) ARN, 생성 날짜, 만료 등 모든 공급자에 대한 정보를 나열하려면 다음 명령을 실행합니다.
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/list-saml-providers.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-saml-providers.html)

1. (선택 사항) ARN, 생성 날짜, 만료 날짜, 암호화 설정, 프라이빗 키 정보 등 특정 공급자에 대한 정보를 얻으려면 다음 명령을 실행합니다.
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/get-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-saml-provider.html)

1. IAM 자격 증명 공급자를 삭제하려면 다음 명령을 실행합니다.
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-saml-provider.html)

## IAM SAML 자격 증명 공급자 생성 및 관리(AWS API)
<a name="idp-create-identityprovider-API"></a>

AWS API를 사용하여 SAML 공급자를 생성, 업데이트, 삭제할 수 있습니다. SAML 페더레이션에 대한 도움이 필요하면 [SAML 페더레이션 문제 해결](troubleshoot_saml.md)을 참조하세요.

**IAM 자격 증명 공급자를 생성하고 메타데이터 문서를 업로드하려면(AWS API)**
+ 다음 연산을 호출합니다. [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateSAMLProvider.html) 

**IAM SAML 자격 증명 공급자를 업데이트하려면(AWS API)**

메타데이터 파일과 SAML 암호화 설정을 업데이트하고 IAM SAML 공급자의 프라이빗 키 복호화 파일을 교체할 수 있습니다. 프라이빗 키를 교체하려면 새 프라이빗 키를 추가한 다음 별도의 요청에서 이전 키를 제거합니다. 프라이빗 키 교체에 대한 자세한 내용은 [SAML 암호화 키 관리](#id_federation_manage-saml-encryption) 섹션을 참조하세요.
+ 다음 연산을 호출합니다. [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) 

**기존 IAM 자격 증명 공급자를 태깅하려면(AWS API)**
+ 다음 연산을 호출합니다. [https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagSAMLProvider.html) 

**기존 IAM 자격 증명 공급자의 태그를 나열하려면(AWS API)**
+ 다음 연산을 호출합니다. [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviderTags.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviderTags.html) 

**기존 IAM 자격 증명 공급자에서 태그를 제거하려면(AWS API)**
+ 다음 연산을 호출합니다. [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagSAMLProvider.html) 

**IAM 자격 증명 공급자를 삭제하려면(AWS API)**

1. (선택 사항)ARN, 생성 날짜, 만료 등 모든 IdP에 대한 정보를 나열하려면 다음 연산을 호출합니다.
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviders.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviders.html)

1. (선택 사항) ARN, 생성 날짜, 만료 날짜, 암호화 설정, 프라이빗 키 정보 등 특정 공급자에 대한 정보를 얻으려면 다음 연산을 호출합니다.
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html)

1. IdP를 삭제하려면 다음 연산을 호출합니다.
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSAMLProvider.html)

## 다음 단계
<a name="id_roles_create-for-saml-next-steps"></a>

SAML ID 제공업체를 생성한 후 IdP와의 신뢰 당사자 트러스트를 설정합니다. IdP의 인증 응답에서 가져온 클레임을 정책에서 사용하여 역할에 대한 액세스를 제어할 수도 있습니다.
+ IdP에 서비스 공급자로서 AWS의 정보를 알려야 합니다. 이를 가리켜 IdP와 AWS 간 신뢰 당사자 트러스트 추가라고 합니다. 신뢰 당사자 신뢰를 추가하기 위한 정확한 프로세스는 사용 중인 IdP에 따라 달라집니다. 자세한 내용은 [신뢰 당사자 신뢰 및 클레임 추가를 통해 SAML 2.0 IdP 구성](id_roles_providers_create_saml_relying-party.md)을 참조하세요.
+ IdP가 AWS에 클레임이 포함된 리소스를 전송하는 경우 수신 클레임 중 다수가 AWS 콘텍스트 키에 매핑됩니다. Condition 요소를 사용하여 IAM 정책에서 이러한 컨텍스트 키를 사용하고 역할에 대한 액세스를 제어할 수 있습니다. 자세한 내용은 [인증 응답에 대한 SAML 어설션 구성](id_roles_providers_create_saml_assertions.md) 섹션을 참조하세요.