

# SEC02-BP04 중앙 집중식 자격 증명 공급자 사용
<a name="sec_identities_identity_provider"></a>

 직원 ID(직원 및 계약업체)의 경우 중앙 위치에서 ID를 관리할 수 있는 ID 공급업체를 이용하세요. 이렇게 하면 단일 위치에서 액세스를 생성, 관리 및 취소하므로 여러 애플리케이션과 서비스에 대한 액세스를 더 쉽게 관리할 수 있습니다. 

 **원하는 결과:** 중앙 집중식 ID 공급자를 통해 직원 사용자, 인증 정책(예: MFA (Multi-Factor Authentication) 요구), 시스템 및 애플리케이션에 대한 권한 부여(예: 사용자의 그룹 구성원 자격 또는 특성에 따른 액세스 할당)를 중앙에서 관리할 수 있습니다. 직원 사용자는 중앙 ID 공급자에 로그인하고 내부 및 외부 애플리케이션에 페더레이션(Single Sign-On) 하므로 사용자가 여러 자격 증명을 기억할 필요가 없습니다. ID 공급자는 인사(HR) 시스템과 통합되므로 직원 변경 사항이 ID 공급자와 자동으로 동기화됩니다. 예를 들어, 누군가가 조직을 떠나는 경우 페더레이션된 응용 프로그램 및 시스템(AWS 포함)에 대한 액세스를 자동으로 취소할 수 있습니다. ID 공급자에서 세부 감사 로깅을 활성화했으며 이러한 로그를 모니터링하여 비정상적인 사용자 동작이 있는지 확인하고 있습니다. 

 **일반적인 안티 패턴:** 
+  페더레이션 및 싱글 사인온은 사용하지 않습니다. 직원이 여러 애플리케이션과 시스템에서 별도의 사용자 계정과 자격 증명을 생성합니다. 
+  ID 공급자를 HR 시스템에 통합하는 등 직원 사용자의 ID 라이프사이클을 자동화하지 않습니다. 사용자가 조직을 떠나거나 역할을 변경하면 수동 프로세스에 따라 여러 애플리케이션 및 시스템에서 기록을 삭제하거나 업데이트합니다. 

 **이 모범 사례 확립의 이점:** 중앙 집중식 ID 공급자를 사용하면 직원 사용자 ID 및 정책을 한 곳에서 관리하고, 사용자와 그룹에 애플리케이션 액세스 권한을 할당하고, 사용자 로그인 활동을 모니터링할 수 있습니다. 인사(HR) 시스템과 통합하면 사용자가 역할을 변경하면 이러한 변경 내용이 ID 공급자와 동기화되고 할당된 애플리케이션 및 권한이 자동으로 업데이트됩니다. 사용자가 조직을 떠나면 ID 공급자에서 해당 ID가 자동으로 비활성화되어 페더레이션된 애플리케이션 및 시스템에 대한 액세스 권한이 취소됩니다. 

 **이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준:**높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 **AWS에 액세스하는 직원을 위한 지침 ** 

 조직의 직원 및 계약직과 같은 인력 사용자는 직무를 수행하기 위해 AWS Management Console 또는 AWS Command Line Interface(AWS CLI)를 사용하여 AWS에 대한 액세스 권한이 필요할 수 있습니다. 중앙 집중식 ID 공급자를 두 가지 AWS 수준으로 페더레이션하여 직원 사용자에게 AWS 액세스 권한을 부여할 수 있습니다. 즉, AWS 조직에서 각 공급자에 대해 직접 페더레이션 AWS 계정 또는 여러 계정에 [페더레이션하는 것입니다](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html). 
+  인력 사용자를 각 AWS 계정 사용자와 직접 페더레이션하려면 중앙 집중식 ID 공급자를 사용하여 그 계정에서 다음과 같이 [AWS Identity and Access Management](https://aws.amazon.com/iam/) 페더레이션할 수 있습니다. IAM의 유연성을 통해 별도의 기능을 활성화할 수 있습니다. [SAML 2.0](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html) 또는 [오픈 ID 커넥트 (OIDC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html) 각각에 대한 ID AWS 계정 공급자이며 액세스 제어를 위한 통합 사용자 속성을 사용합니다. 직원은 웹 브라우저를 사용하여 자격 증명(예: 암호 및 MFA 토큰 코드)을 제공하여 ID 공급자에 로그인합니다. ID 공급자가 브라우저에 SAML 어설션을 발행하여 AWS Management Console 로그인 URL에 제출하여 사용자가 SSO에 싱글 사인온할 수 있도록 합니다. [AWS Management Console역할을 맡음으로써 IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html). 또한 사용자는 ID 공급자로부터 SAML 어설션을 사용하여 IAM 역할을 가정하여 [AWS STS에서](https://aws.amazon.com/cli/) AWS CLI [또는 AWS SKD에서 ](https://aws.amazon.com/developer/tools/) 사용할 임시 [AWS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) API [자격 증명을](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) 얻을 수 있습니다. 
+  AWS 조직에서 여러 계정을 가진 인력 사용자를 페더레이션하려면 [https://aws.amazon.com/single-sign-on/](https://aws.amazon.com/single-sign-on/) 사용하여 AWS 계정 및 애플리케이션에 대한 인력 사용자의 액세스를 중앙에서 관리할 수 있습니다. 조직의 ID 센터를 활성화하고 ID 소스를 구성합니다.IAM Identity Center사용자 및 그룹을 관리하는 데 사용할 수 있는 기본 ID 소스 디렉터리를 제공합니다. 또는 SAML 2.0을 사용하여 [https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-idp.html](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-idp.html) SCIM을 [사용하여](https://docs.aws.amazon.com/singlesignon/latest/userguide/provision-automatically.html) 사용자 및 그룹을 [https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-ad.html](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-ad.html) 프로비저닝하거나 [Directory Service를 사용하여 Microsoft AD 디렉터리에 연결하여 외부 ID 소스를 선택할 수도 있습니다](https://aws.amazon.com/directoryservice/). ID 소스가 구성되면 권한 집합에 최소 권한 정책을 정의하여 사용자 및 그룹에 AWS 계정에 대한 액세스 [권한을 할당할 수 있습니다](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html). 직원 사용자는 중앙 ID 공급자를 통해 인증하여 다음에 로그인할 수 있습니다. [AWS 액세스 포털](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html) 그리고 그들에게 할당된 클라우드 애플리케이션에도 싱글 AWS 계정 사인온을 할 수 있습니다. 사용자는 다음을 구성할 수 있습니다. [AWS CLI v2:](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) ID 센터를 통해 인증하고 AWS CLI 명령을 실행하기 위한 자격 증명을 얻을 수 있습니다. 또한ID 센터를 사용하면 AWS 애플리케이션에 싱글 사인온 액세스할 수 있습니다. 예시로는 [Amazon SageMaker AI Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-sso-users.html) 및 [AWS IoT Sitewise Monitor 포털들이 있습니다](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-getting-started.html). 

 위의 지침을 따른 후에는 작업자가 AWS 워크로드를 관리할 때 정상적인 작업을 위해 더 이상 IAM users와 그룹을 사용할 필요가 없습니다. 대신 사용자와 그룹은 외부에서 AWS 관리되며 사용자는 연동 자격 증명과 같이 AWS 리소스에 *액세스할 수 있습니다*. 페더레이션 ID는 중앙 ID 공급자가 정의한 그룹을 사용합니다. AWS 계정에서 더 이상 필요하지 않은 IAM 그룹, IAM users 그리고 수명이 긴 사용자 자격 증명(암호 및 액세스 키)을 식별하고 제거해야 합니다. IAM 자격 증명 보고서를 [사용하여](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html) 사용하지 않는 [자격 증명을 찾고](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html), [해당 IAM users를](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html) 및 [IAM 그룹을 삭제할 수 있습니다.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_delete.html) 조직에 [서비스 제어 정책(SCP)를](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) 적용하여 새로운 IAM users 및 그룹 생성을 방지하고 페더레이션된 ID를 통해 AWS에 액세스하도록 강제할 수 있습니다. 

 **애플리케이션 사용자를 위한 지침** 

 모바일 앱과 같은 애플리케이션 사용자의 ID를 중앙 ID 공급자로 [https://aws.amazon.com/cognito/](https://aws.amazon.com/cognito/) 사용하여 관리할 수 있습니다. Amazon Cognito은 웹 및 모바일 앱에 대한 인증, 권한 부여 및 사용자 관리를 지원합니다. Amazon Cognito는 수백만 명의 사용자로 확장 가능한 ID 저장소를 제공하고, 소셜 및 엔터프라이즈 ID 페더레이션을 지원하며, 고급 보안 기능을 제공하여 사용자와 비즈니스를 보호할 수 있도록 지원합니다. 사용자 지정 웹 또는 모바일 애플리케이션을 Amazon Cognito 통합하여 몇 분 만에 애플리케이션에 사용자 인증 및 액세스 제어를 추가할 수 있습니다. SAML 및 Open ID Connect (OIDC) 와 같은 개방형 ID 표준을 기반으로 하며 다양한 규정 준수 규정을 Amazon Cognito 지원하고 프런트엔드 및 백엔드 개발 리소스와 통합됩니다. 

### 구현 단계
<a name="implementation-steps"></a>

 **직원 AWS 액세스 단계** 
+  다음 접근 방식 중 하나인 AWS 사용하여 직원 사용자를 중앙 집중식 ID 공급자를 사용하도록 통합하세요. 
  +  ID 공급자와 IAM Identity Center 페더레이션하여 AWS 조직 AWS 계정 내 여러 명이 Single Sign-On을 사용할 수 있도록 하는 데 사용합니다. 
  +  ID 공급자를 AWS 계정 각각에 직접 IAM 연결하여 통합 세분화된 액세스를 가능하게 하는 데 사용합니다. 
+  페더레이션 ID로 대체되는 항목을 식별 IAM users 및 제거하고 그룹화합니다. 

 **애플리케이션 사용자를 위한 단계** 
+  Amazon Cognito를 애플리케이션에 대한 중앙 집중식 ID 공급자로 사용하세요. 
+  OpenID Connect 및 Amazon Cognito OAuth를 사용하여 사용자 지정 애플리케이션을 통합하세요. 인증과 같은 Amazon Cognito 다양한 AWS 서비스와 통합할 수 있는 간단한 인터페이스를 제공하는 Amplify 라이브러리를 사용하여 사용자 지정 애플리케이션을 개발할 수 있습니다. 

## 리소스
<a name="resources"></a>

 **관련 Well-Architected 모범 사례:** 
+  [SEC02-BP06 사용자 그룹 및 속성 활용](sec_identities_groups_attributes.md) 
+  [SEC03-BP02 최소 권한 액세스 부여](sec_permissions_least_privileges.md) 
+  [SEC03-BP06 수명 주기에 따라 액세스 관리](sec_permissions_lifecycle.md) 

 **관련 문서:** 
+  [AWS의 아이덴티티 페더레이션](https://aws.amazon.com/identity/federation/) 
+  [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 
+  [AWS Identity and Access Management 모범 사례](https://aws.amazon.com/iam/resources/best-practices/) 
+  [IAM Identity Center위임 관리 시작하기](https://aws.amazon.com/blogs/security/getting-started-with-aws-sso-delegated-administration/) 
+  [고급 사용 사례에서 IAM Identity Center 고객 관리형 정책을 사용하는 방법](https://aws.amazon.com/blogs/security/how-to-use-customer-managed-policies-in-aws-single-sign-on-for-advanced-use-cases/) 
+  [AWS CLIv2: IAM Identity Center 자격 증명 공급자](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sso-credentials.html) 

 **관련 동영상:** 
+  [AWS re:Inforce 2022 - AWS Identity and Access Management (IAM) deep dive](https://youtu.be/YMj33ToS8cI) 
+  [AWS re:Invent 2022 - Simplify your existing workforce access with IAM Identity Center](https://youtu.be/TvQN4OdR_0Y) 
+  [AWS re:Invent 2018: Mastering identity at every layer of the cake](https://youtu.be/vbjFjMNVEpc) 

 **관련 예시:** 
+  [워크숍: 강력한 ID 관리를 위해 AWS IAM Identity Center 사용](https://catalog.us-east-1.prod.workshops.aws/workshops/590f8439-42c7-46a1-8e70-28ee41498b3a/en-US) 
+  [워크숍: 서버리스 ID](https://identity-round-robin.awssecworkshops.com/serverless/) 

 **관련 도구:** 
+  [AWS 보안 컴피턴시 파트너: ID 및 액세스 관리](https://aws.amazon.com/security/partner-solutions/) 
+  [saml2aws](https://github.com/Versent/saml2aws) 