반응형
{
"AccessKeyId": "ASIAXXXXX",
"SecretAccessKey": "XXXXX",
"SessionToken": "XXXX",
"Expiration": "2025-10-17T12:00:00Z"
}
🧩 요약 한 줄로
구분역할한 줄 설명
| 사용자 풀 (User Pool) | “로그인 시스템” | 사용자의 ID(이메일·비밀번호, Google 로그인 등)를 관리하는 인증(Authentication) 기능 |
| ID 풀 (Identity Pool) | “권한 부여 시스템” | 로그인한 사용자가 AWS 리소스(S3, DynamoDB 등)에 접근할 수 있게 권한 부여(Authorization) 해주는 기능 |
1️⃣ Cognito 사용자 풀 (User Pool)
“사용자가 누구인지 인증(Authenticate)하는 곳”
💡 기능
- 사용자 계정을 직접 관리 (회원가입, 로그인, 비밀번호 재설정)
- Google, Apple, Facebook, SAML, OIDC 같은 소셜/기업 IdP 연동 가능
- JWT 토큰 (ID 토큰, Access 토큰, Refresh 토큰) 발급
- Lambda 트리거(가입 전 검증, 로그인 후 후처리 등) 가능
- MFA, CAPTCHA, 비밀번호 정책 등 내장
📘 예시
사용자가 로그인하면 Cognito가 이런 토큰을 줍니다:
{
"id_token": "...", // 사용자 프로필 정보 (이름, 이메일 등)
"access_token": "...", // API Gateway 등 접근 시 사용
"refresh_token": "..." // 세션 갱신용
}
2️⃣ Cognito ID 풀 (Identity Pool)
“인증된 사용자에게 AWS 리소스에 접근할 자격(Authorization)을 주는 곳”
💡 기능
- AWS 자격 증명(AWS Temporary Credentials) 발급 (STS 기반)
- 사용자 풀 / SAML / 소셜 로그인 / 익명 게스트 로그인 모두 연결 가능
- IAM 역할과 연동되어, “어떤 AWS 리소스에 어떤 권한을 줄지” 제어
- 주로 프론트엔드 앱에서 S3 업로드, DynamoDB 접근 등에 사용
⚙️ 예시
User Pool에서 로그인 성공 → ID Token 발급
↓
Identity Pool이 ID Token을 받아서 → STS AssumeRoleWithWebIdentity 호출
↓
사용자에게 아래 같은 임시 자격 증명 발급:
{
"AccessKeyId": "ASIAXXXXX",
"SecretAccessKey": "XXXXX",
"SessionToken": "XXXX",
"Expiration": "2025-10-17T12:00:00Z"
}
🔄 두 개를 같이 쓰는 이유
단계구성요소역할
| ① | Cognito User Pool | 사용자 로그인 / 인증 수행 (ID Token 발급) |
| ② | Cognito Identity Pool | 해당 토큰으로 AWS 자격 증명 발급 (IAM Role 연결) |
| ③ | IAM | 어떤 AWS 리소스(S3, DynamoDB 등)에 접근 가능한지 제어 |
[사용자] → 로그인 → [User Pool]
↓
(ID Token 발급)
↓
[Identity Pool] → IAM Role 매핑
↓
[AWS 서비스 접근 (S3 등)]
🔐 실무 예제
사용 사례필요한 구성
| 웹/모바일 앱 로그인만 (토큰 기반 인증) | ✅ User Pool만 사용 |
| 로그인 후 S3 업로드, DynamoDB 접근 등 AWS API 직접 호출 | ✅ User Pool + Identity Pool 같이 사용 |
| 익명 게스트가 임시로 S3에 접근 | ✅ Identity Pool만 사용 (Unauthenticated role) |
📋 비교표 정리
항목사용자 풀 (User Pool)ID 풀 (Identity Pool)
| 주요 목적 | 인증(Authentication) | 권한 부여(Authorization) |
| 생성되는 것 | JWT 토큰 (ID, Access, Refresh) | AWS 임시 자격 증명 (AccessKey, SecretKey, SessionToken) |
| 주 대상 | 사용자 (사람) | AWS 리소스 접근 권한 |
| IAM 역할 사용 | ❌ | ✅ |
| 게스트 로그인 지원 | ❌ | ✅ |
| 예시 서비스 | 로그인, MFA, SSO | S3 업로드, DynamoDB 접근 |
🎯 요약
상황사용 방법
| 앱 로그인/회원가입만 필요 | User Pool만 사용 |
| 로그인 후 AWS 리소스 접근 필요 | User Pool + Identity Pool 조합 |
| 인증 없이 임시 접근 허용 | Identity Pool만 사용 |
반응형
'퍼블릭 클라우드 관련 > AWS' 카테고리의 다른 글
| AWS KMS 대칭키 vs 비대칭키 (0) | 2025.10.20 |
|---|---|
| AWS Security Specialty 혼동 개념 총정리 (20세트 ver.) (0) | 2025.10.20 |
| IAM 역할 내부 구조 (0) | 2025.10.18 |
| Verified Access vs Verified Permissions 차이 (0) | 2025.10.17 |
| aws service catalog vs cloudformation stack policy (0) | 2025.10.16 |