Skip to content

adr cognito auth

minsoo edited this page Jun 10, 2026 · 1 revision

ADR - Dashboard 인증: Cognito User Pool (관리자 전용)

메타데이터
상태 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 일관성·비용.

관련 문서

Aegis-Pi Wiki

· 대표 문서 목록은 홈의 문서 탐색 표 참조

시작하기

요구사항

핵심 개념

아키텍처

컴포넌트 (Edge → Cloud → Dashboard)

Dashboard & 운영

시나리오 · 사례 · 참조

Clone this wiki locally