7. AuthN, AuthR과 관련된 AWS 서비스
AWS Directory
Service
AWS IAM Amazon
Cognito
Amazon API
Gateway
8. AuthN, AuthR과 관련된 AWS 서비스
AWS Directory
Service
AWS IAM
• 쉽게 Microsoft Active Directory를 AWS 상에서 사용
• 3개의 디렉토리 타입 :
1. Microsoft AD
2. Simple AD
3. AD connector
• 온프리미스 AD와 통합 가능
• AWS리소스에 접근할 수 있는 권한과 인증을 콘트롤
• AuthN : 누가 AWS 리소스를 사용할 수 있는가?
• AuthR : 인증 받은 사용자가 어떤 AWS 리소스에 접근할 수 있는가?
• EC2, Lambda등의 AWS 리소스에 대한 접근 권한에 대한 제어
9. AuthN, AuthR과 관련된 AWS 서비스
• 모바일/웹앱에 대한 사인인, 사인업, 유저 관리
• 소셜 auth와 커스텀 auth 지원
• 여러 디바이스간의 유저 데이터 동기화 기능 제공
• 쉽게 Restful 웹 API를 생성/조작
• API의 관리 용이
• API 리소스 접근 제어를 위해 IAM, 커스텀 Auth 람다함수,
Cognito 유저 풀이 제공 됨
Amazon
Cognito
Amazon API
Gateway
10. 사용 예
AWS Directory
Service
AWS IAM
• 고용자를 위한 in-house 시스템의 계정관리
• IAM과 연계되어 AWS 콘솔에 대한 SSO
• Sharepoint, Amazon WorkMail등 윈도우 기반 비지니스
서비스에 대한 authN 제어
• 관리 콘솔이나 API를 사용하는 사용자에 대해 IAM
유저/그룹을 통해 관리
• EC2 혹은 Lambda로 부터 AWS 리소스로 접근하는 접근권을
제어
11. 사용 예
• 모바일 네이티브 앱 혹은 자바스크립트 브라우저 앱을 위한
Temparary credential 발급으로 AWS 리소스에 접근 가능하게 함
• 만약 authN이 필요하다면, 고객은 3rd 파티 아이디 제공자나
Cognito User Pools를 사용가능
• JSON기반의 웹 API를 생성
• 백앤드 서비스들과 연동 가능
• 만약 authN이 필요하다면, 고객은 IAM, Custom
Authorizer(Lambda function) 혹은 Cognito User Pools
Authorizer 를 이용할 수 있다
Amazon
Cognito
Amazon API
Gateway
오늘 데모 대상
13. 기존 인증 흐름 - federation
STS
5. Receive
AWS
Credentials
3. Assume Role2. OpenID Token
Mobile Client
Cognito
“IDP”
1. Get or
Create
Identity
4. Validate
Amazon S3
6. Store Data
14. Cognito Identity
Federation IdentitiesYour User Pools
모바일 앱/웹 앰에 대해 쉽고
안전하게 사인-인, 사인-아웃
기능을 생성할 수 있음
수억명의 사용자까지 쉽게
확대 가능
3rd 파티 ID제공자 (페이스북, Twitter
and SAML 제공자 등)를 통해
로그인 할수 있음.
AWS 리소스에 대한 앱의 접근에
대해 제어할 수 있음
GA : 7/28/2016
15. User Pools
당신의 모바일/웹 앱에 대해
쉽게 사인업, 사인인 기능을
쉽게 추가할 수 있습니다.
쉬운 유저 관리
AWS의 안전에 대한 경험이
녹아 있습니다. 이메일 인증,
MFA 인증의 기능을 쉽게
적용할 수 있습니다.
강화된 안전
유저 디레토리를 손쉽게
생성합니다. 간단하면서,
안전하고, 낮은 비용의 완전
관리형 유저 디렉토리입니다.
수억명까지 쉽게 확장됩니다.
유저 디렉토리 관리
16. 이전에는
부담이 큰 작업
자신의 유저 디렉토리를 만들기 위해 많은 시간과 리소스를 투자해야만 했음
제대로 된 작동이 쉽지 않음
유저 데이터 패스워드에 대한 보안적인 관리 및 처리가 쉽지 않음
확장성의 문제
앱이 성공하고 나면, 디렉토리 인프라를 확장하는 것이 필요하게 됨
17. 유저 시나리오
이메일 혹은 전화번호
확인
패스워드 분실/리셋
유저 sign-up 과 sign-
in
사용자는 이메일 주소나 전화번호를 어카운트 활성화하기 앞서 확인할 수 있다.
사용자는 자신의 패스워드를 변경할 수 있으며 원하는 경우 리셋할 수도 있다
유저는 이메일, 전화번호 혹은 유저 이름과 패스워드로 사인업을 수행한다. 이후
이 정보로 사인인 할 수 있다
사용자 프로파일 사용자 프로파일을 가져오거나 업데이트 할 수 있다. 사용자 지정 속성도
포함된다.
SMS-기반 MFA
사인업, 패스워드 분실/리셋에서 에서 별도로 MFA를 사용하게 할 수 있다.
18. 유저 시나리오
토큰 기반 인증
안전한 원격 패스워드
프로토콜
SMS 기반 Multi-factor
인증
Cognito 사인인은 dentity provider로서 OpenID Connect (OIDC) 와 OAuth 2.0를
지원한다
Cognito 사인인은 Secure Remote Password (SRP)를 안전한 패스워드 처리를
위해서 사용한다
모바일 폰의 텍스트 메시징을 이용해서 보안 레이어를 더 추가할 수 있다.
20. Lambda 훅을 통한 커스터마이징
Lambda 훅으로 커스텀 로직을 추가
- Pre- and post user sign-up
- Pre- and post user sign-in
- Post user confirmation
사용 예
- 사기 감지
- Email 검증
- 커스텀되거나 로컬라이즈된 메시지
- 광고
22. 확장된 관리 기능
커스텀 속성 정의
속성에 대한 필수 사항
설정
User Pools 생성 및
관리
사용자 프로필에 사용할 커스텀 속성을 정의할 수 있다
사인업에 앞서 완전하게 제공되어야할 속성을 선택할 수 있다
AWS region별로 복수개의 유저 풀을 생성, 설정과 삭제를 할 수 있다
패스워드 정책 설정 패스워트 정책(길이 등)을 설정하여서 관리할 수 있다
유저 검색 콘솔 혹은 API를 통해 이메일, 전화번호, 유저 이름 등으로 유저를 검색할 수 있다.
유저 관리 유저 패스워드 리셋, 활성화, 유저 컨펌, MFA 사용, 유저 삭제, 글로벌 사인아웃
등 유저 관리 기능을 수행한다.
23. Cognito User Pools 과 API 게이트웨이
1. Custom Authorizer 기능
당신의 API에 대한 접근을 제어하기
위해 Oauth나 SAML과 같은
토큰인증기능을 사용할 수 있다.
2. Native Support
User Pools는 API 게이트웨이와 함께
API 요청을 인가해준다. API
게이트웨이가 ID 토큰을 받아서
유저풀에 기반한 유저에 대한 인가를
할 수 있게 설정할 수 있다