Amazon Cognito
: 사용자에게 자격 증명을 부여해서 웹, 모바일 애플리케이션과 상호작용하게 한다.
- Cognito는 AWS 외부에 자리한 웹과 모바일 애플리케이션 사용자를 위한 것이다.
Cognito User Pools(CUP)
: 웹 및 모바일 애플리케이션 사용자들의 서버리스 데이터베이스를 생성할 수 있는 방법
- 앱 사용자를 위해 로그인 기능을 제공한다.
- 자격 증명 인증에 사용된다.
Integrations
: CUP은 선천적으로 API Gateway 그리고 애플리케이션 로드 밸런서와 통합이 된다.
Lambda Triggers
Hosted Authentication UI
Hosted UI Cusom Domain
Adaptice Authentication
: 조정 인증을 이용해서 수상한 로그인이 있을 경우에 로그인을 차단하거나 다중 인증을 요구할 수 있다.
Decoding a ID Token; JWT-JSON Web Token
- JWT 토큰을 받아 페이로드에 있는 정보를 신뢰하려면 서명을 인증해야 한다.
CUP issues JWT tokens(Base64 encoded)
Application Load Balancer - Authenticate Users
- 보안상 HTTPS 리스너를 설정해야 한다. 그 다음에 authenticate-oidc 또는 authenticate-cognito rules를 설정한다.
- OnUnauthenticatedRequest(사용자가 인증을 받지 못한 경우): authenticate(default), deny, allow
- 액세스 관리에 사용된다.
OpenID Connect(OIDC)를 준수하는 자격 증명 공급자 사용
Cognito 사용자 풀 사용
Cognito Identity Pools(Federated Identity)
: 앱에 등록된 사용자가 AWS의 리소스에 바로 액세스할 수 있도록 임시 AWS 자격 증명을 제공한다.
- 사용자들에게 Cognito 자격 증명 풀을 이용해 AWS로의 액세스를 제공한다.
- 게스트 정책을 정의해서 게스트 사용자들에게 AWS 자격 증명을 주는 게 가능하다.
- 사용자들은 이 AWS 자격 증명을 휙득한 이후에는 직접 AWS 서비스로 액세스할 수 있는데 SDK를 이용한 API 콜을 통해서나 혹은 API Gateway를 통해서도 가능하다.
IAM Roles
- 정책 변수를 사용해서 IAM 정책을 커스터마이징할 수 있다.
Cognito 사용자 풀을 Cognito 자격 증명 풀과 함께 사용하면 1차로 인증을 얻고 2차로 권한 부여를 얻게 된다.