-
Notifications
You must be signed in to change notification settings - Fork 0
adr dashboard rbac
minsoo edited this page Jun 10, 2026
·
1 revision
| 메타데이터 | 값 |
|---|---|
| 상태 | accepted |
| 결정일 | 2026-06-04 |
| 현재 유효 여부 | 유효 |
| 관련 결정 | Cognito 인증(adr-cognito-auth), RDS PostgreSQL(adr-rds-postgresql) |
| 구현 근거 |
apps/dashboard-backend(auth/admin router, RDS app_user/user_factory_access/audit_log) |
| 검증 근거 | 미인가 공장 직접 호출 403, System 권한 없는 사용자 Cloud Infra 403 |
로그인 주체는 Cognito User Pool로 유지하고, 역할과 공장 접근 범위는 RDS PostgreSQL 앱 테이블에서 관리한다. PostgreSQL DB role을 사람별로 만들지 않고, DB 접속 계정은 ECS backend용 서비스 계정만 유지한다.
Cognito User Pool 로그인·MFA·세션·임시 비밀번호
RDS PostgreSQL app_user / factory / user_factory_access / audit_log
FastAPI Backend JWT sub → app_user 조회 → 공장별 인가 강제
Dashboard Web 백엔드가 허용한 사용자/공장만 표시
| 역할 | 의미 |
|---|---|
super_admin |
모든 공장, 사용자 관리, System 화면 접근 |
factory_admin |
부여된 공장만 조회/관리. 사용자 관리 접근 불가 |
org_admin / viewer
|
legacy role. 신규 생성 UI/API에서는 선택 불가 |
공장 관리자의 System(Cloud Infra) 화면 접근은 app_user.can_view_system boolean으로 분리한다.
super_admin은 항상 접근 가능하고, factory_admin은 해당 값이 true일 때만 /cloud-infra에
접근할 수 있다.
| Endpoint | 통제 |
|---|---|
/factories, /reports
|
접근 가능한 공장만 반환 |
/factories/{id}, /history, /reports/{date}/{id}
|
권한 없는 공장은 403
|
/ws/factories/{id} |
구독 전 권한 검증 |
/cloud-infra, /cloud-infra/history
|
super_admin 또는 can_view_system=true만 |
/admin/users |
super_admin(또는 legacy org_admin)만. 공장 관리자는 sidebar에서도 숨김 |
- 관제 데이터는 공장 단위 민감도가 있어 사용자별 조회 범위 통제가 필요하다(FR-DASH-08/09, NFR-SEC-02).
- 역할·공장 관계는 관계형 모델(RDS)이 자연스럽고, Cognito는 인증에만 집중한다.
- 사용자 생성/삭제는 Cognito(AdminCreateUser/AdminDeleteUser)와 RDS row를 함께 처리해 상태를 일관되게 유지한다.
- 시스템 아키텍처
- 제어 & 데이터 플레인
- 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 채팅 어시스턴트