Amazon Cognito란 무엇입니까? - Amazon Cognito

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

Amazon Cognito란 무엇입니까?

Amazon Cognito는 웹 및 모바일 앱을 위한 자격 증명 플랫폼입니다. Amazon Cognito는 OAuth 2.0 액세스 토큰 및 AWS 보안 인증을 위한 사용자 디렉터리, 인증 서버, 인증 서비스입니다. Amazon Cognito를 사용하면 기본 제공 사용자 디렉터리, 엔터프라이즈 디렉터리, Google 및 Facebook 같은 소비자 ID 제공업체의 사용자를 인증하고 권한을 부여할 수 있습니다.

다음 두 가지 구성 요소가 Amazon Cognito를 구성합니다. 이들은 사용자의 액세스 요구 사항에 따라 독립적으로 또는 함께 작동합니다.

사용자 풀

앱 또는 API에 사용자를 인증하고 권한을 부여하려는 경우 사용자 풀을 생성하세요. 사용자 풀은 셀프 서비스 및 관리자 기반 사용자 생성, 관리, 인증을 모두 갖춘 사용자 디렉터리입니다. 사용자 풀은 독립 디렉터리 및 OIDC ID 제공업체(idP)일 수 있고, 직원 및 고객 자격 증명 서드 파티 공급자에 대한 중간 서비스 공급자(SP)일 수 있습니다. 사용자 풀을 갖춘 SAML 2.0 및 OIDC IdP에 있는 조직의 직원 ID에 대한 Single Sign-On(SSO)을 앱에 제공할 수 있습니다. 퍼블릭 OAuth 2.0 ID 스토어인 Amazon, Google, Apple, Facebook의 조직 고객 ID를 위한 SSO를 앱에 제공할 수도 있습니다. 고객 ID 및 액세스 관리(CIAM)에 대한 자세한 내용은 CIAM이란 무엇인가요? 섹션을 참조하십시오.

사용자 풀은 자격 증명 풀과의 통합이 필요하지 않습니다. 사용자 풀에서 인증된 JSON 웹 토큰(JWT)을 앱, 웹 서버 또는 API에 직접 발급할 수 있습니다.

자격 증명 풀

인증된 사용자나 익명 사용자가 AWS 리소스에 액세스할 수 있도록 권한을 부여하려면 Amazon Cognito 자격 증명 풀을 설정하세요. 자격 증명 풀은 앱이 사용자에게 리소스를 제공할 수 있도록 AWS 보안 인증을 발급합니다. 사용자 풀 또는 SAML 2.0 서비스 같은 신뢰할 수 있는 ID 제공업체를 사용하여 사용자를 인증할 수 있습니다. 필요한 경우 게스트 사용자의 보안 인증도 발급할 수 있습니다. 자격 증명 풀은 역할 기반 액세스 제어와 속성 기반 액세스 제어를 모두 사용하여 AWS 리소스에 액세스할 수 있는 사용자의 권한 부여를 관리합니다.

자격 증명 풀은 사용자 풀과의 통합이 필요하지 않습니다. 자격 증명 풀은 직원 ID 제공업체와 소비자 ID 제공업체 모두로부터 인증된 클레임을 직접 수락할 수 있습니다.

Amazon Cognito 사용자 풀과 자격 증명 풀을 함께 사용

이 주제를 시작하는 다이어그램에서는 Amazon Cognito를 사용하여 사용자를 인증한 다음 사용자에게 AWS 서비스 액세스 권한을 부여합니다.

  1. 앱 사용자는 사용자 풀을 통해 로그인하고 OAuth 2.0 토큰을 받습니다.

  2. 앱은 사용자 풀 토큰을 AWS API 및 AWS Command Line Interface(AWS CLI)와 함께 사용할 수 있는 임시 AWS 보안 인증과 교환합니다.

  3. 앱은 사용자에게 보안 인증 세션을 할당하고 Amazon S3와 Amazon DynamoDB 같은 AWS 서비스에 대한 승인된 액세스 권한을 제공합니다.

자격 증명 풀과 사용자 풀을 사용하는 더 많은 예제는 일반적인 Amazon Cognito 시나리오를 참조하세요.

Amazon Cognito에서 공동 책임 모델의 클라우드 자체 보안 의무는 SOC 1-3, PCI DSS, ISO 27001을 준수하며, HIPA-BAA 적격입니다. Amazon Cognito에서 클라우드 내 보안이 SOC1-3, ISO 27001, HIPAA-BAA를 준수하도록 설계할 수 있습니다. 단, PCI DSS는 준수하지 않습니다. 자세한 내용은 범위 내 AWS 서비스를 참조하세요. 리전 데이터 고려 사항도 참조하세요.

Amazon Cognito의 기능

사용자 풀

Amazon Cognito 사용자 풀은 사용자 디렉터리입니다. 사용자 풀을 사용하면 사용자는 Amazon Cognito를 통해, 또는 서드 파티 IdP를 통해 페더레이션하여 웹 또는 모바일 앱에 로그인할 수 있습니다. 사용자 풀에는 페더레이션 사용자와 로컬 사용자의 사용자 프로필이 있습니다.

로컬 사용자는 가입했거나 사용자 풀에서 직접 생성한 사용자입니다. AWS Management Console, AWS SDK 또는 AWS Command Line Interface(AWS CLI)에서 이러한 사용자 프로필을 관리하고 사용자 지정할 수 있습니다.

Amazon Cognito 사용자 풀은 서드 파티 IdP로부터 토큰과 어설션을 수락하고, 앱에 발급하는 JWT에 사용자 속성을 수집합니다. Amazon Cognito가 IdP와의 상호 작용을 처리하여 해당 클레임을 중앙 토큰 형식에 매핑하는 동안 하나의 JWT 세트에서 앱을 표준화할 수 있습니다.

Amazon Cognito 사용자 풀은 독립 실행형 IdP일 수 있습니다. Amazon Cognito는 OpenID Connect(OIDC) 표준을 기반으로 인증 및 권한 부여를 위한 JWT를 생성합니다. 로컬 사용자를 로그인하면 해당 사용자는 사용자 풀을 신뢰할 수 있습니다. 로컬 사용자를 인증할 때 다음 기능에 액세스할 수 있습니다.

  • Amazon Cognito 사용자 풀 API를 호출하여 사용자를 인증, 권한 부여, 관리하는 자체 웹 프런트엔드를 구현합니다.

  • 사용자 다중 인증(MFA)을 설정합니다. Amazon Cognito는 시간 기반 일회용 암호(TOTP) 및 SMS 메시지 MFA를 지원합니다.

  • 악의적으로 제어되는 사용자 계정의 액세스로부터 보호합니다.

  • 자체 사용자 지정 다단계 인증 흐름을 생성합니다.

  • 다른 디렉터리에서 사용자를 찾아 Amazon Cognito로 마이그레이션합니다.

또한 Amazon Cognito 사용자 풀은 IdP에 대한 서비스 공급자(SP)이자 앱에 대한 IdP로서 이중의 역할을 수행할 수 있습니다. Amazon Cognito 사용자 풀은 Facebook과 Google 같은 소비자 IdP나 Okta와 Active Directory Federation Services(ADFS) 같은 직원 IdP에 연결할 수 있습니다.

Amazon Cognito 사용자 풀이 발급하는 OAuth 2.0 및 OpenID Connect(OIDC) 토큰을 사용하면 다음과 같은 작업을 수행할 수 있습니다.

  • 사용자를 인증하고 사용자 프로필을 설정하는 데 필요한 정보를 제공하는 ID 토큰을 앱에서 수락합니다.

  • 사용자의 API 호출을 승인하는 OIDC 범위를 사용하여 API에서 액세스 토큰을 수락합니다.

  • Amazon Cognito 자격 증명 풀에서 AWS 보안 인증을 검색합니다.

Amazon Cognito 사용자 풀의 기능
기능 Description
OIDC IdP Issue ID tokens to authenticate users
Authorization server Issue access tokens to authorize user access to APIs
SAML 2.0 SP Transform SAML assertions into ID and access tokens
OIDC SP Transform OIDC tokens into ID and access tokens
OAuth 2.0 SP Transform ID tokens from Apple, Facebook, Amazon, or Google to your own ID and access tokens
Authentication frontend service Sign up, manage, and authenticate users with the hosted UI
API support for your own UI Create, manage and authenticate users through API requests in supported AWS SDKs¹
MFA Use SMS messages, TOTPs, or your user's device as an additional authentication factor¹
Security monitoring & response Secure against malicious activity and insecure passwords¹
Customize authentication flows Build your own authentication mechanism, or add custom steps to existing flows¹
Groups Create logical groupings of users, and a hierarchy of IAM role claims when you pass tokens to identity pools
Customize ID tokens Customize your ID tokens with new, modified, and suppressed claims
Customize user attributes Assign values to user attributes and add your own custom attributes

¹ 기능은 로컬 사용자만 사용할 수 있습니다.

사용자 풀에 대한 자세한 내용은 사용자 풀 시작하기Amazon Cognito 사용자 풀 API 참조를 참조하세요.

자격 증명 풀

자격 증명 풀은 사용자 또는 게스트에게 할당하고 임시 AWS 보안 인증을 받을 권한을 부여하는 고유 식별자 또는 자격 증명의 모음입니다. SAML 2.0, OpenID Connect(OIDC) 또는 OAuth 2.0 소셜 ID 제공업체(idP)의 신뢰할 수 있는 클레임 형태로 자격 증명 풀에 인증 증명을 제시하면 사용자가 자격 증명 풀의 자격 증명에 연결됩니다. 자격 증명 풀이 자격 증명을 위해 생성하는 토큰은 AWS Security Token Service(AWS STS)에서 임시 세션 자격 증명을 검색할 수 있습니다.

인증된 자격 증명을 보완하기 위해 IdP 인증 없이 AWS 액세스 권한을 부여하도록 자격 증명 풀을 구성할 수도 있습니다. 자체 사용자 지정 인증 증명을 제공하거나 인증을 제공하지 않을 수 있습니다. 인증되지 않은 자격 증명을 사용하여 요청하는 앱 사용자에게 임시 AWS 보안 인증을 부여할 수 있습니다. 또한 자격 증명 풀은 개발자 인증 자격 증명과 함께 자체 사용자 지정 스키마를 기반으로 클레임을 수락하고 보안 인증을 발급합니다.

Amazon Cognito 자격 증명 풀을 사용하면 AWS 계정에서 두 가지 방법으로 IAM 정책과 통합할 수 있습니다. 이 두 기능은 함께 사용하거나 개별적으로 사용할 수 있습니다.

역할 기반 액세스 제어

사용자가 자격 증명 풀에 클레임을 전달하면 Amazon Cognito는 자격 증명 풀이 요청하는 IAM 역할을 선택합니다. 역할의 권한을 필요에 맞게 사용자 지정하려면 각 역할에 IAM 정책을 적용합니다. 예를 들어 마케팅 부서에 소속되어 있음을 입증하는 사용자는 마케팅 부서 액세스 요구 사항에 맞게 조정된 정책이 포함된 역할의 보안 인증을 받게 됩니다. Amazon Cognito는 기본 역할, 사용자의 클레임을 쿼리하는 규칙에 기반한 역할 또는 사용자 풀의 사용자 그룹 멤버십에 기반한 역할을 요청할 수 있습니다. IAM이 임시 세션 생성을 위해 자격 증명 풀만 신뢰하도록 역할 신뢰 정책을 구성할 수도 있습니다.

액세스 제어를 위한 속성

자격 증명 풀은 사용자의 클레임에서 속성을 읽고 이를 사용자 임시 세션의 보안 주체 태그에 매핑합니다. 그런 다음 IAM 리소스 기반 정책을 구성하여 자격 증명 풀에서 세션 태그를 전달하는 IAM 보안 주체를 기반으로 리소스에 대한 액세스를 허용하거나 거부할 수 있습니다. 예를 들어, 사용자가 자신이 마케팅 부서에 소속되어 있음을 입증하면 AWS STS는 해당 세션에 Department: marketing 태그를 지정합니다. Amazon S3 버킷은 Department 태그에 marketing 값이 필요한 aws:PrincipalTag 조건에 따라 읽기 작업을 허용합니다.

Amazon Cognito 자격 증명 풀의 기능
기능 Description
Amazon Cognito user pool SP Exchange an ID token from your user pool for web identity credentials from AWS STS
SAML 2.0 SP Exchange SAML assertions for web identity credentials from AWS STS
OIDC SP Exchange OIDC tokens for web identity credentials from AWS STS
OAuth 2.0 SP Exchange OAuth tokens from Amazon, Facebook, Google, Apple, and Twitter for web identity credentials from AWS STS
Custom SP With AWS credentials, exchange claims in any format for web identity credentials from AWS STS
Unauthenticated access Issue limited-access web identity credentials from AWS STS without authentication
Role-based access control Choose an IAM role for your authenticated user based on their claims, and configure your roles to only be assumed in the context of your identity pool
Attribute-based access control Convert claims into principal tags for your AWS STS temporary session, and use IAM policies to filter resource access based on principal tags

자격 증명 풀에 대한 자세한 내용은 Amazon Cognito 자격 증명 풀(페더레이션 자격 증명) 시작하기Amazon Cognito 자격 증명 풀 API 참조를 참조하세요.

Amazon Cognito 사용자 풀과 자격 증명 풀 비교

기능 Description 사용자 풀 자격 증명 풀
OIDC IdP Issue OIDC ID tokens to authenticate app users
API authorization server Issue access tokens to authorize user access to APIs, databases, and other resources that accept OAuth 2.0 authorization scopes
IAM web identity authorization server Generate tokens that you can exchange with AWS STS for temporary AWS credentials
SAML 2.0 SP & OIDC IdP Issue customized OIDC tokens based on claims from a SAML 2.0 IdP
OIDC SP & OIDC IdP Issue customized OIDC tokens based on claims from an OIDC IdP
OAuth 2.0 SP & OIDC IdP Issue customized OIDC tokens based on scopes from OAuth 2.0 social providers like Apple and Google
SAML 2.0 SP & credentials broker Issue temporary AWS credentials based on claims from a SAML 2.0 IdP
OIDC SP & credentials broker Issue temporary AWS credentials based on claims from an OIDC IdP
OAuth 2.0 SP & credentials broker Issue temporary AWS credentials based on scopes from OAuth 2.0 social providers like Apple and Google
Amazon Cognito user pool SP & credentials broker Issue temporary AWS credentials based on OIDC claims from an Amazon Cognito user pool
Custom SP & credentials broker Issue temporary AWS credentials based on developer IAM authorization
Authentication frontend service Sign up, manage, and authenticate users with the hosted UI
API support for your own authentication UI Create, manage and authenticate users through API requests in supported AWS SDKs¹
MFA Use SMS messages, TOTPs, or your user's device as an additional authentication factor¹
Security monitoring & response Protect against malicious activity and insecure passwords¹
Customize authentication flows Build your own authentication mechanism, or add custom steps to existing flows¹
Groups Create logical groupings of users, and a hierarchy of IAM role claims when you pass tokens to identity pools
Customize ID tokens Customize your ID tokens with new, modified, and suppressed claims
AWS WAF web ACLs Monitor and control requests to your authentication environment with AWS WAF
Customize user attributes Assign values to user attributes and add your own custom attributes
Unauthenticated access Issue limited-access web identity credentials from AWS STS without authentication
Role-based access control Choose an IAM role for your authenticated user based on their claims, and configure your roles to only be assumed in the context of your identity pool
Attribute-based access control Transform user claims into principal tags for your AWS STS temporary session, and use IAM policies to filter resource access based on principal tags

¹ 기능은 로컬 사용자만 사용할 수 있습니다.

Amazon Cognito 시작하기

주요 작업 및 시작 지점 가이드는 Amazon Cognito 시작하기 단원을 참조하십시오.

동영상, 기사, 설명서, 샘플 앱은 Amazon Cognito 개발자 리소스를 참조하세요.

Amazon Cognito를 사용하려면 AWS 계정이 있어야 합니다. 자세한 내용은 Amazon Cognito 콘솔 사용 섹션을 참조하세요.

지역별 가용성

Amazon Cognito는 전 세계의 여러 AWS 리전에서 사용할 수 있습니다. 각 리전에서 Amazon Cognito는 다수의 가용 영역으로 배포됩니다. 이러한 가용 영역은 물리적으로 서로 분리되어 있지만, 지연 시간이 짧고 처리량과 중복성이 우수한 프라이빗 네트워크 연결로 통합됩니다. 이러한 가용 영역은 아주 높은 수준의 가용성과 중복성을 제공하면서 지연 시간을 최소화하여 AWS가 Amazon Cognito를 포함한 여러 서비스를 제공할 수 있도록 합니다.

현재 Amazon Cognito가 제공되는 모든 리전의 목록은 Amazon Web Services 일반 참조에서 AWS 리전 및 엔드포인트를 참조하세요. 각 리전에서 사용할 수 있는 가용 영역 수에 대한 자세한 내용은 AWS 글로벌 인프라를 참조하세요.

Amazon Cognito 요금

Amazon Cognito 요금에 대한 자세한 내용은 Amazon Cognito 요금을 참조하세요.