외부 인증 사용자에 대한 접근

외부 인증 사용자에 대한 접근 (자격 증명 페더레이션)

사용자는 AWS 외부(예: 기업 디렉토리)에 이미 자격 증명이 있을 수 있어요. 그 사용자가 AWS 리소스로 작업해야 한다면(또는 그 리소스에 접근하는 애플리케이션으로 작업해야 한다면) 그 사용자에게도 AWS 보안 자격 증명이 필요해요. 조직이나 써드파티 ID 공급자(IdP)에서 페더레이션된 자격 증명을 가진 사용자에 대한 권한을 IAM 역할로 지정할 수 있어요.

출처: 문서

본문

참고 보안 모범 사례로 IAM 사용자를 만드는 대신 IAM Identity Center에서 자격 증명 페더레이션으로 사용자 접근을 관리할 것을 권장해요. IAM 사용자가 필요한 특정 상황에 대한 정보는 IAM 사용자 생성 시기 (역할 대신) 문서를 참고하세요.

IAM Identity Center 권한 세트는 IAM Identity Center가 관리하는 IAM 역할 템플릿을 프로비저닝합니다. IAM 기능인 계정 접근 관리자(Account access manager)는 IAM Identity Center 사용자와 그룹에 사용자 지정 IAM 역할을 할당할 수 있게 해주며, 사용자 지정 신뢰 정책, 역할 태그, 구성 가능한 역할 경로 같은 기능을 지원합니다. 권한 세트와 함께 사용하거나 단독으로 사용할 수 있어요.

Amazon Cognito를 사용한 모바일 또는 웹 기반 앱 사용자 페더레이션

AWS 리소스에 접근하는 모바일 또는 웹 기반 앱을 만들면 그 앱은 AWS에 프로그래매틱 요청을 하기 위해 보안 자격 증명이 필요해요. 대부분의 모바일 애플리케이션 시나리오에서는 Amazon Cognito를 사용할 것을 권장해요. 이 서비스를 iOS용 AWS Mobile SDK와 Android 및 Fire OS용 AWS Mobile SDK와 함께 사용해 사용자의 고유 자격 증명을 만들고, AWS 리소스에 대한 안전한 접근을 위해 인증할 수 있어요. Amazon Cognito는 다음 섹션에 나열된 것과 같은 ID 공급자를 지원하며, 개발자 인증 자격 증명과 미인증(게스트) 접근도 지원합니다. Amazon Cognito는 사용자가 기기 간에 이동할 때 보존되도록 사용자 데이터를 동기화하는 API 작업도 제공합니다. 자세한 내용은 모바일 앱용 Amazon Cognito 문서를 참고하세요.

공용 ID 서비스 공급자 또는 OpenID Connect로 사용자 페더레이션

가능하면 모바일 및 웹 기반 애플리케이션 시나리오에 Amazon Cognito를 사용하세요. Amazon Cognito는 공용 ID 공급자 서비스로 뒷단의 대부분의 작업을 대신 수행해줍니다. 삼자 서비스와 함께 작동하고 익명 로그인도 지원합니다. 하지만 더 고급 시나리오의 경우 Login with Amazon, Facebook, Google, OpenID Connect(OIDC) 호환 IdP 같은 써드파티 서비스와 직접 작업할 수 있어요. 이러한 서비스 중 하나를 사용한 OIDC 페더레이션에 대한 자세한 내용은 OIDC 페더레이션 문서를 참고하세요.

SAML 2.0으로 사용자 페더레이션

조직에서 SAML 2.0(Security Assertion Markup Language 2.0)을 지원하는 ID 공급자 소프트웨어 패키지를 이미 사용하고 있다면, 조직을 ID 공급자(IdP)로, AWS를 서비스 공급자로 하여 신뢰를 만들 수 있어요. 그런 다음 SAML을 사용해 AWS Management Console에 페더레이션 단일 로그온(SSO)을 제공하거나 AWS API 작업을 호출할 페더레이션 접근을 제공할 수 있어요. 예를 들어 회사에서 Microsoft Active Directory와 Active Directory Federation Services를 사용한다면 SAML 2.0으로 페더레이션할 수 있어요. SAML 2.0으로 사용자를 페더레이션하는 방법은 SAML 2.0 페더레이션 문서를 참고하세요.

사용자 지정 ID 브로커 애플리케이션을 만들어 사용자 페더레이션

ID 스토어가 SAML 2.0과 호환되지 않는다면 비슷한 기능을 수행하도록 사용자 지정 ID 브로커 애플리케이션을 구축할 수 있어요. 브로커 애플리케이션은 사용자를 인증하고, AWS에서 사용자의 임시 자격 증명을 요청한 다음, 사용자가 AWS 리소스에 접근할 수 있도록 그 자격 증명을 제공합니다.

예를 들어 Example Corp에는 회사의 AWS 리소스에 접근하는 내부 애플리케이션을 실행해야 하는 직원이 많습니다. 직원들은 이미 회사 자격 증명 및 인증 시스템에 자격 증명이 있고, Example Corp는 회사 직원마다 별도의 IAM 사용자를 만들고 싶지 않습니다.

Bob은 Example Corp의 개발자입니다. Example Corp 내부 애플리케이션이 회사의 AWS 리소스에 접근할 수 있도록 Bob은 사용자 지정 ID 브로커 애플리케이션을 개발합니다. 이 애플리케이션은 직원이 LDAP, Active Directory 또는 다른 시스템을 사용할 수 있는 기존 Example Corp 자격 증명 및 인증 시스템에 로그인되어 있는지 확인합니다. 그런 다음 ID 브로커 애플리케이션은 직원을 위한 임시 보안 자격 증명을 얻습니다. 이 시나리오는 이전 시나리오(사용자 지정 인증 시스템을 사용하는 모바일 앱)와 비슷하지만, AWS 리소스에 접근해야 하는 애플리케이션이 모두 기업 네트워크 내에서 실행되고 회사에 기존 인증 시스템이 있다는 점이 다릅니다.

임시 보안 자격 증명을 얻기 위해 ID 브로커 애플리케이션은 AssumeRole 또는 GetFederationToken 중에서 Bob이 사용자의 정책을 관리하는 방식과 임시 자격 증명이 만료되어야 하는 시점에 따라 하나를 호출합니다. (이 API 작업의 차이점에 대한 자세한 내용은 IAM의 임시 보안 자격 증명 및 임시 보안 자격 증명에 대한 권한 문서를 참고하세요.) 호출은 AWS 액세스 키 ID, 보안 액세스 키, 세션 토큰으로 구성된 임시 보안 자격 증명을 반환합니다. ID 브로커 애플리케이션은 이러한 임시 보안 자격 증명을 내부 회사 애플리케이션에서 사용할 수 있게 합니다. 그러면 앱이 임시 자격 증명을 사용해 AWS에 직접 호출할 수 있어요. 앱은 자격 증명을 만료될 때까지 캐시하고, 만료되면 새 임시 자격 증명 세트를 요청합니다.

이 시나리오에는 다음 속성이 있습니다.

  • ID 브로커 애플리케이션은 임시 보안 자격 증명을 만들기 위해 IAM의 토큰 서비스(STS) API에 접근할 권한이 있습니다.
  • ID 브로커 애플리케이션은 기존 인증 시스템 내에서 직원이 인증되었는지 확인할 수 있습니다.
  • 사용자는 AWS Management Console에 접근할 수 있는 임시 URL을 얻을 수 있습니다(단일 로그온이라고 함).

임시 보안 자격 증명 생성에 대한 자세한 내용은 AWS STS 자격 증명 비교 문서를 참고하세요. SAML 페더레이션 주체가 AWS Management Console에 접근하는 방법은 SAML 2.0 페더레이션 주체가 AWS Management Console에 접근할 수 있게 설정 문서를 참고하세요.

더 알아보기 (Learn more)