-
Notifications
You must be signed in to change notification settings - Fork 0
adr cognito auth
minsoo edited this page Jun 10, 2026
·
1 revision
| 메타데이터 | 값 |
|---|---|
| 상태 | accepted |
| 결정일 | 2026-05-15 |
| 현재 유효 여부 | 유효 (인가 위치는 ECS Backend 앱 레벨로 이동, 아래 참조) |
| 관련 결정 | 정적 SPA(ADR 0006), ECS Fargate Backend(adr-ecs-fargate-backend), RBAC(adr-dashboard-rbac) |
| 구현 근거 | Cognito User Pool / App Client / Hosted UI, apps/dashboard-backend(JWT 검증) |
| 검증 근거 | 미인증 호출 401, Hosted UI에 sign-up 미노출, MFA 강제 |
Dashboard는 본사 관리자 전용 폐쇄형 시스템이므로 인증을 Cognito User Pool로 처리하고, Self sign-up을 비활성화해 관리자만 사용자를 생성한다.
Self-service sign-up : Disabled
User creation : Admin only (Console / CLI / Terraform)
MFA : TOTP (운영 보안 정책에 따라 적용)
로그인 화면 : Cognito Hosted UI (OIDC Authorization Code + PKCE)
- 외부인이 URL을 알아도 가입 버튼 자체가 없어 로그인 페이지 진입만 가능하다.
- Hosted UI를 사용해 로그인·비밀번호 재설정·MFA 등록 화면을 코드 없이 제공한다.
- 사용자가 1~5명 규모의 관제 시스템이라 Self sign-up이 불필요하다.
- AWS 생태계 통합 기준 Cognito가 가장 자연스럽고, 외부 IdP 도입은 부담이 크다.
- Hosted UI가 OAuth2/OIDC PKCE flow를 자동 처리해 보안 구현 실수를 줄인다.
- Cognito 무료 티어(50,000 MAU)로 사실상 비용이 0이다.
결정 당시 인가는 API Gateway Cognito Authorizer였으나, Dashboard API 런타임이 ECS Fargate로 바뀌면서(adr-ecs-fargate-backend) JWT 검증이 Backend 앱 레벨로 이동했다. FastAPI가 JWKS 기반으로 서명·만료·audience를 검증하고, 공장별 인가는 RDS 메타데이터로 필터링한다(adr-dashboard-rbac).
- Self sign-up 활성화 — 관제 시스템 정체성과 충돌.
- WAF IP 화이트리스트로 인증 대체 — 시연 시 IP 운영 부담, 보안 신호 약함.
- Auth0/Firebase 외부 IdP — AWS 일관성·비용.
- 시스템 아키텍처
- 제어 & 데이터 플레인
- Dashboard VPC 설계
- 하드웨어 배치
- Hub EKS 네임스페이스
- Tailscale Mesh VPN
- 데이터 생명주기
- 데이터 조회 모델
- 실시간 갱신 구조
- IoT 데이터 계약
- Reporting Pipeline
- 로컬 스토리지
- 클라우드 스토리지
- Edge Agent
- Edge AI 탐지
- Factory-A Log Adapter
- Dummy Sensor
- Edge IoT Publisher
- Lambda Data Processor
- Risk Normalizer
- Risk Score Engine
- Pipeline Status Aggregator
- Graph Aggregator 5m
- Cloud Infra Collector
- Daily Report Generator
- Risk Alert Dispatcher
- Image Snapshot Pipeline
- Dashboard Backend
- Dashboard Web
- AI 채팅 어시스턴트