기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Cognito란 무엇입니까?
Amazon Cognito는 웹 및 모바일 앱을 위한 자격 증명 플랫폼입니다. 사용자 디렉토리, 인증 서버, OAuth 2.0 액세스 토큰 및 AWS 자격 증명을 위한 권한 부여 서비스입니다. Amazon Cognito를 사용하면 기본 제공 사용자 디렉터리, 엔터프라이즈 디렉터리, Google 및 Facebook 같은 소비자 ID 제공업체의 사용자를 인증하고 권한을 부여할 수 있습니다.
주제
다음 두 가지 구성 요소가 Amazon Cognito를 구성합니다. 이들은 사용자의 액세스 요구 사항에 따라 독립적으로 또는 함께 작동합니다.
사용자 풀
![](images/user-pools-overview.png)
앱을 통해 사용자를 인증하고 권한을 부여하려는 경우 사용자 풀을 생성하거나 API 사용자 풀은 셀프 서비스 및 관리자 기반 사용자 생성, 관리, 인증을 모두 갖춘 사용자 디렉터리입니다. 사용자 풀은 독립 디렉터리 및 OIDC ID 공급자 (IdP) 일 수도 있고 직원 및 고객 ID를 제공하는 타사 공급자에 대한 중간 서비스 공급자 (SP) 일 수도 있습니다. SAML2.0 버전에서는 사용자 풀과 함께 조직의 직원 ID에 대한 싱글 사인온 (Single Sign-OnSSO) 을 앱에 제공할 수 있습니다. OIDC IdPs Amazon, Google, Apple, Facebook의 퍼블릭 OAuth 2.0 ID 스토어에 조직의 고객 ID를 앱에 제공할 SSO 수도 있습니다. 고객 ID 및 액세스 관리 (CIAM) 에 대한 자세한 내용은 What isCIAM?
사용자 풀은 자격 증명 풀과의 통합이 필요하지 않습니다. 사용자 풀에서 인증된 JSON 웹 토큰 (JWTs) 을 앱, 웹 서버 또는 서버에 직접 발행할 수 있습니다. API
자격 증명 풀
![](images/identity-pools-overview.png)
인증된 사용자 또는 익명 사용자가 리소스에 액세스할 수 있도록 승인하려는 경우 Amazon Cognito 자격 증명 풀을 설정하십시오. AWS 자격 증명 풀은 앱이 사용자에게 리소스를 제공할 수 있도록 AWS 자격 증명을 발급합니다. 사용자 풀이나 SAML 2.0 서비스와 같은 신뢰할 수 있는 ID 공급자를 통해 사용자를 인증할 수 있습니다. 필요한 경우 게스트 사용자의 보안 인증도 발급할 수 있습니다. ID 풀은 역할 기반 액세스 제어와 속성 기반 액세스 제어를 모두 사용하여 리소스에 대한 사용자의 액세스 권한을 관리합니다. AWS
자격 증명 풀은 사용자 풀과의 통합이 필요하지 않습니다. 자격 증명 풀은 직원 ID 제공업체와 소비자 ID 제공업체 모두로부터 인증된 클레임을 직접 수락할 수 있습니다.
Amazon Cognito 사용자 풀과 자격 증명 풀을 함께 사용
이 주제를 시작하는 다이어그램에서는 Amazon Cognito를 사용하여 사용자를 인증한 다음 사용자에게 AWS 서비스 액세스 권한을 부여합니다.
-
앱 사용자는 사용자 풀을 통해 로그인하고 2.0 토큰을 받습니다. OAuth
-
앱은 사용자 풀 토큰을 자격 증명 풀과 교환하여 AWS APIs 및 AWS Command Line Interface (AWS CLI) 와 함께 사용할 수 있는 임시 AWS 자격 증명으로 교환합니다.
-
앱은 사용자에게 자격 증명 세션을 할당하고 Amazon S3 및 Amazon DynamoDB AWS 서비스 등에 대한 승인된 액세스를 제공합니다.
자격 증명 풀과 사용자 풀을 사용하는 더 많은 예제는 일반적인 Amazon Cognito 시나리오를 참조하세요.
Amazon Cognito에서 공동 책임 모델의
Amazon Cognito의 기능
사용자 풀
Amazon Cognito 사용자 풀은 사용자 디렉터리입니다. 사용자 풀을 사용하면 사용자는 Amazon Cognito를 통해, 또는 서드 파티 IdP를 통해 페더레이션하여 웹 또는 모바일 앱에 로그인할 수 있습니다. 사용자 풀에는 페더레이션 사용자와 로컬 사용자의 사용자 프로필이 있습니다.
로컬 사용자는 가입했거나 사용자 풀에서 직접 생성한 사용자입니다. AWS Management Console AWS SDK, an 또는 () 에서 이러한 사용자 프로필을 관리하고 사용자 지정할 수 있습니다. AWS Command Line Interface AWS CLI
Amazon Cognito 사용자 풀은 타사의 IdPs 토큰과 어설션을 수락하고 사용자 속성을 수집하여 앱에 JWT 발급합니다. Amazon Cognito가 IdPs 상호 작용을 처리하는 JWTs 동안 앱을 표준화하여 클레임을 중앙 토큰 형식에 매핑할 수 있습니다.
Amazon Cognito 사용자 풀은 독립 실행형 IdP일 수 있습니다. Amazon Cognito는 OpenID Connect (OIDC) 표준을 기반으로 인증 및 권한 부여를 JWTs 위해 생성합니다. 로컬 사용자를 로그인하면 해당 사용자는 사용자 풀을 신뢰할 수 있습니다. 로컬 사용자를 인증할 때 다음 기능에 액세스할 수 있습니다.
-
Amazon Cognito 사용자 API 풀을 호출하여 사용자를 인증, 권한 부여 및 관리하는 자체 웹 프론트엔드를 구현하십시오.
-
사용자를 위한 멀티 팩터 인증 () 을 설정하십시오. MFA Amazon Cognito는 시간 기반 일회용 암호 () TOTP 및 메시지를 지원합니다. SMS MFA
-
악의적으로 제어되는 사용자 계정의 액세스로부터 보호합니다.
-
자체 사용자 지정 다단계 인증 흐름을 생성합니다.
-
다른 디렉터리에서 사용자를 찾아 Amazon Cognito로 마이그레이션합니다.
또한 Amazon Cognito 사용자 풀은 사용자의 서비스 공급자 (SP) 역할과 앱의 IdP라는 이중 역할을 수행할 수 IdPs 있습니다. Amazon Cognito 사용자 풀은 페이스북 및 구글과 IdPs 같은 소비자 또는 Okta 및 Active Directory 페더레이션 서비스 () 와 IdPs 같은 인력과 연결할 수 있습니다. ADFS
아마존 코그니토 사용자 풀이 발행하는 OAuth 2.0 및 OpenID Connect (OIDC) 토큰을 사용하여 다음을 수행할 수 있습니다.
-
사용자를 인증하고 사용자 프로필을 설정하는 데 필요한 정보를 제공하는 ID 토큰을 앱에서 수락합니다.
-
사용자 통화를 승인하는 OIDC 범위를 API 사용하여 액세스 토큰을 수락하십시오. API
-
Amazon Cognito AWS 자격 증명 풀에서 자격 증명을 검색합니다.
기능 | 설명 |
---|---|
OIDCIdP | ID 토큰을 발급하여 사용자를 인증하세요 |
권한 부여 서버 | 액세스 토큰을 발급하여 다음 항목에 대한 사용자 액세스를 승인합니다. APIs |
SAML2.0 SP | SAML어설션을 ID 및 액세스 토큰으로 변환 |
OIDCSP | OIDC토큰을 ID 및 액세스 토큰으로 변환 |
OAuth2.0 SP | 애플, 페이스북, 아마존, 구글의 ID 토큰을 자신의 ID 및 액세스 토큰으로 변환하세요. |
인증 프론트엔드 서비스 | 호스팅된 UI를 사용하여 사용자를 등록, 관리 및 인증합니다. |
API자체 UI 지원 | 지원되는 API AWS SDKs 요청을 통해 사용자를 생성, 관리 및 인증하십시오¹ |
MFA | SMS메시지 또는 사용자 기기를 추가 인증 요소로 사용¹ TOTPs |
보안 모니터링 및 대응 | 악의적인 활동 및 안전하지 않은 비밀번호로부터 보호¹ |
인증 흐름 사용자 지정 | 자체 인증 메커니즘을 구축하거나 기존 플로우에 사용자 지정 단계를 추가¹ |
그룹 | 토큰을 자격 증명 풀에 전달할 때 논리적 사용자 그룹화 및 IAM 역할 클레임 계층 구조 생성 |
ID 토큰을 사용자 지정하세요. | 신규 클레임, 수정된 클레임, 숨겨진 클레임으로 ID 토큰을 사용자 지정하세요. |
사용자 특성을 맞춤설정하세요. | 사용자 속성에 값을 할당하고 고유한 사용자 지정 특성을 추가합니다. |
¹ 기능은 로컬 사용자만 사용할 수 있습니다.
사용자 풀에 대한 자세한 내용은 Amazon Cognito 사용자 풀 API 참조를 참조하십시오사용자 풀 시작하기.
자격 증명 풀
자격 증명 풀은 사용자나 게스트에게 할당하고 임시 자격 증명을 받을 수 있는 권한을 부여하는 고유 식별자 또는 자격 증명의 모음입니다. AWS SAML2.0, OpenID Connect (OIDC) 또는 OAuth 2.0 소셜 ID 공급자 (IdP) 의 신뢰할 수 있는 클레임 형태로 자격 증명 풀에 인증 증명을 제시하면 사용자를 자격 증명 풀의 ID와 연결합니다. 자격 증명 풀이 해당 ID에 대해 생성하는 토큰은 AWS Security Token Service ()AWS STS에서 임시 세션 자격 증명을 검색할 수 있습니다.
인증된 ID를 보완하기 위해 IdP 인증 AWS 없이 액세스를 승인하도록 ID 풀을 구성할 수도 있습니다. 자체 사용자 지정 인증 증명을 제공하거나 인증을 제공하지 않을 수 있습니다. 임시 AWS 자격 증명을 요청하는 모든 앱 사용자에게 인증되지 않은 ID를 사용하여 임시 자격 증명을 부여할 수 있습니다. 또한 자격 증명 풀은 개발자 인증 자격 증명과 함께 자체 사용자 지정 스키마를 기반으로 클레임을 수락하고 보안 인증을 발급합니다.
Amazon Cognito 자격 증명 풀을 사용하면 두 가지 방법으로 자체 IAM 정책에 통합할 수 있습니다. AWS 계정이 두 기능은 함께 사용하거나 개별적으로 사용할 수 있습니다.
역할 기반 액세스 제어
사용자가 자격 증명 풀에 클레임을 전달하면 Amazon Cognito가 요청하는 IAM 역할을 선택합니다. 역할의 권한을 필요에 맞게 사용자 지정하려면 각 역할에 IAM 정책을 적용해야 합니다. 예를 들어 마케팅 부서에 소속되어 있음을 입증하는 사용자는 마케팅 부서 액세스 요구 사항에 맞게 조정된 정책이 포함된 역할의 보안 인증을 받게 됩니다. Amazon Cognito는 기본 역할, 사용자의 클레임을 쿼리하는 규칙에 기반한 역할 또는 사용자 풀의 사용자 그룹 멤버십에 기반한 역할을 요청할 수 있습니다. 자격 증명 풀만 IAM 신뢰하여 임시 세션을 생성하도록 역할 신뢰 정책을 구성할 수도 있습니다.
액세스 제어를 위한 속성
자격 증명 풀은 사용자의 클레임에서 속성을 읽고 이를 사용자 임시 세션의 보안 주체 태그에 매핑합니다. 그런 다음 자격 증명 풀의 세션 태그를 포함하는 IAM 보안 주체를 기반으로 리소스에 대한 액세스를 허용하거나 거부하도록 IAM 리소스 기반 정책을 구성할 수 있습니다. 예를 들어, 사용자가 마케팅 부서에 근무하고 있음을 입증하는 경우 해당 세션에 태그를 지정하십시오. AWS STS Department: marketing
Amazon S3 버킷은 Department
태그 값이 필요한 aws: PrincipalTag 조건에 따라 읽기 작업을 허용합니다. marketing
기능 | 설명 |
---|---|
아마존 코그니토 사용자 풀 SP | 사용자 풀의 ID 토큰을 다음의 웹 자격 증명 자격 증명으로 교환하십시오. AWS STS |
SAML2.0 SP | 웹 ID 자격 SAML 증명에 대한 어설션 교환 AWS STS |
OIDCSP | OIDC토큰을 웹 ID 자격 증명으로 교환하십시오. AWS STS |
OAuth2.0 SP | 아마존, 페이스북, 구글, 애플, 트위터의 OAuth 토큰을 웹 ID 자격 증명으로 교환하세요. AWS STS |
커스텀 SP | AWS 자격 증명을 사용하면 모든 형식의 클레임을 웹 ID 자격 증명으로 교환할 수 있습니다. AWS STS |
인증되지 않은 액세스 | 인증 없이 액세스가 제한된 웹 ID 자격 증명을 발급하십시오. AWS STS |
역할 기반 액세스 제어 | 클레임을 기반으로 인증된 사용자의 IAM 역할을 선택하고, 자격 증명 풀의 컨텍스트에서만 역할을 위임하도록 구성하십시오. |
속성 기반 액세스 제어 | 클레임을 AWS STS 임시 세션의 주체 태그로 변환하고 IAM 정책을 사용하여 보안 주체 태그를 기준으로 리소스 액세스를 필터링합니다. |
자격 증명 풀에 대한 자세한 내용은 Amazon Cognito 자격 증명 풀 API 참조를 참조하십시오Amazon Cognito 자격 증명 풀 시작하기.
Amazon Cognito 사용자 풀과 자격 증명 풀 비교
기능 | 설명 | 사용자 풀 | 자격 증명 풀 |
---|---|---|---|
OIDCIdP | OIDCID 토큰을 발급하여 앱 사용자를 인증하세요 | ✓ | |
API권한 부여 서버 | OAuth2.0 인증 범위를 허용하는 데이터베이스 및 기타 리소스에 APIs 대한 사용자 액세스를 승인하는 액세스 토큰을 발급합니다. | ✓ | |
IAM웹 ID 인증 서버 | 임시 AWS 자격 증명으로 교환할 수 있는 AWS STS 토큰을 생성하십시오. | ✓ | |
SAML2.0 SP 및 OIDC IdP | SAML2.0 IdP의 클레임을 기반으로 맞춤형 OIDC 토큰 발행 | ✓ | |
OIDCSP 및 OIDC IdP | OIDCIdP의 클레임을 기반으로 맞춤형 OIDC 토큰 발행 | ✓ | |
OAuth2.0 SP 및 OIDC IdP | 애플, 구글과 같은 OAuth 2.0 소셜 서비스 제공자의 범위를 기반으로 맞춤형 OIDC 토큰을 발행하세요 | ✓ | |
SAML2.0 SP 및 자격 증명 브로커 | SAML2.0 IdP의 클레임을 기반으로 임시 AWS 자격 증명 발급 | ✓ | |
OIDCSP 및 자격 증명 브로커 | OIDCIdP의 클레임을 기반으로 임시 AWS 자격 증명 발급 | ✓ | |
OAuth2.0 SP 및 자격 증명 브로커 | Apple 및 Google과 같은 OAuth 2.0 소셜 서비스 제공업체의 범위를 기반으로 임시 AWS 자격 증명을 발급합니다. | ✓ | |
Amazon Cognito 사용자 풀 SP 및 자격 증명 브로커 | Amazon Cognito AWS 사용자 풀의 OIDC 클레임을 기반으로 임시 자격 증명을 발급합니다. | ✓ | |
맞춤형 SP 및 자격 증명 브로커 | 개발자 IAM 승인에 따라 임시 AWS 자격 증명을 발급합니다. | ✓ | |
인증 프론트엔드 서비스 | 호스팅된 UI를 사용하여 사용자를 등록, 관리 및 인증합니다. | ✓ | |
API자체 인증 UI 지원 | 지원되는 API AWS SDKs 요청을 통해 사용자를 생성, 관리 및 인증하십시오¹ | ✓ | |
MFA | SMS메시지 또는 사용자 기기를 추가 인증 요소로 사용¹ TOTPs | ✓ | |
보안 모니터링 및 대응 | 악의적인 활동 및 안전하지 않은 비밀번호로부터 보호¹ | ✓ | |
인증 흐름 사용자 지정 | 자체 인증 메커니즘을 구축하거나 기존 플로우에 사용자 지정 단계를 추가¹ | ✓ | |
그룹 | 토큰을 자격 증명 풀에 전달할 때 논리적 사용자 그룹화 및 IAM 역할 클레임 계층 구조 생성 | ✓ | |
ID 토큰을 사용자 지정하세요. | 신규 클레임, 수정된 클레임, 숨겨진 클레임으로 ID 토큰을 사용자 지정하세요. | ✓ | |
AWS WAF 웹 ACLs | 인증 환경에 대한 요청을 모니터링하고 제어합니다. AWS WAF | ✓ | |
사용자 속성 사용자 지정 | 사용자 속성에 값을 할당하고 고유한 사용자 지정 특성을 추가합니다. | ✓ | |
인증되지 않은 액세스 | 인증 없이 액세스가 제한된 웹 ID 자격 증명을 발급합니다. AWS STS | ✓ | |
역할 기반 액세스 제어 | 클레임을 기반으로 인증된 사용자의 IAM 역할을 선택하고, 자격 증명 풀의 컨텍스트에서만 역할을 위임하도록 구성하십시오. | ✓ | |
속성 기반 액세스 제어 | 사용자 클레임을 AWS STS 임시 세션의 주체 태그로 변환하고 IAM 정책을 사용하여 보안 주체 태그를 기준으로 리소스 액세스를 필터링합니다. | ✓ |
¹ 기능은 로컬 사용자만 사용할 수 있습니다.
Amazon Cognito 시작하기
사용자 풀 애플리케이션의 예는 을 참조하십시오사용자 풀 시작하기.
자격 증명 풀에 대한 소개는 를 참조하십시오Amazon Cognito 자격 증명 풀 시작하기.
사용자 풀 및 자격 증명 풀의 설정 안내 경험에 대한 링크는 를 참조하십시오아마존 Cognito의 설정 옵션 안내.
동영상, 기사, 설명서 및 기타 샘플 애플리케이션에 대해서는 Amazon Cognito 개발자
Amazon Cognito를 사용하려면 AWS 계정이 있어야 합니다. 자세한 내용은 시작하기 AWS 단원을 참조하십시오.
리전별 가용성
Amazon Cognito는 전 세계 여러 AWS 지역에서 사용할 수 있습니다. 각 리전에서 Amazon Cognito는 다수의 가용 영역으로 배포됩니다. 이러한 가용 영역은 물리적으로 서로 분리되어 있지만, 지연 시간이 짧고 처리량과 중복성이 우수한 프라이빗 네트워크 연결로 통합됩니다. 이러한 가용 영역을 사용하면 AWS Amazon Cognito를 비롯한 서비스에 매우 높은 수준의 가용성과 중복성을 제공하는 동시에 지연 시간을 최소화할 수 있습니다.
현재 Amazon Cognito가 제공되는 모든 리전의 목록은 Amazon Web Services 일반 참조에서 AWS 리전 및 엔드포인트를 참조하세요. 각 리전에서 사용할 수 있는 가용 영역 수에 대한 자세한 내용은 AWS 글로벌 인프라
Amazon Cognito 요금
Amazon Cognito 요금에 대한 자세한 내용은 Amazon Cognito 요금