oto/agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md

77 lines
4.1 KiB
Markdown

# Milestone: Control Plane 운영 보안·감사 표면
## 위치
- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/control-plane-product-surface/PHASE.md`
## 목표
Control Plane write action 표면 위에 운영 권한, 확인 가능한 감사 흔적, 보안 경계를 붙일 다음 구현 단위를 정의한다.
완료 후 사용자는 인증/권한과 감사 로그의 source of truth, UI 노출 범위, Core 계약 변경 필요 여부를 구현 계획으로 전환할 수 있어야 한다.
## 상태
[스케치]
## 승격 조건
- [ ] 인증/권한의 최소 제품 범위와 책임 경계를 확정한다.
- [ ] 감사 로그의 source of truth, 보존 범위, UI 노출 범위를 확정한다.
- [ ] 신규 Core API/schema/proto가 필요한지 기존 endpoint 조합으로 충분한지 판정한다.
- [ ] SDD 작성 범위와 사용자 결정 필요 항목을 분리한다.
- [ ] 구현 가능한 기능 Task와 검증 기준을 `[계획]` 상태로 정리한다.
## 구현 잠금
- 상태: 잠금
- SDD: 필요
- SDD 문서: `agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md`
- SDD 사유: 인증/권한, 감사 로그, write action 책임 경계는 API/schema/UI 상태와 사용자 승인 gate에 영향을 주므로 구현 전에 source of truth와 상태 전이를 고정해야 한다.
- 잠금 해제 조건:
- [ ] SDD 상태가 `[승인됨]`이고 SDD 잠금이 해제되어 있다.
- [ ] SDD `USER_REVIEW.md`가 없거나 승인/해결되었다.
- [ ] Acceptance Scenario가 Milestone 기능 Task와 연결되어 있다.
- [ ] Evidence Map이 plan의 `Spec Targets`와 완료 시 `Spec Completion`으로 검증 가능하게 연결되어 있다.
- 결정 필요:
- 최소 인증 모델과 권한 역할을 어디까지 이 Phase에 포함할지 결정한다.
- 감사 로그의 저장 책임이 Core in-memory/event surface인지 durable persistence 후보인지 결정한다.
- 사용자에게 노출할 감사 이벤트 범위와 민감 정보 마스킹 기준을 결정한다.
## 범위
- `services/core` write endpoint 주변의 인증/권한 hook 또는 audit source of truth 필요 여부를 정의한다.
- `apps/client``packages/flutter/oto_console`에서 운영 action 결과와 감사/권한 상태를 표현할 UI 범위를 정의한다.
- 기존 Control Plane 제품 표면 흐름을 기준으로 하며, production-grade identity provider 연동은 기본 구현 범위로 확정하지 않는다.
## 기능
### Epic: [security-audit] 운영 보안·감사 경계 정의
write action 이후 필요한 운영 보안과 감사 capability를 구현 가능한 계획으로 구체화한다.
- [ ] [security-sdd] 인증/권한, 감사 source of truth, 민감 정보 마스킹, 실패/거부 UX, 검증 evidence를 SDD로 고정한다.
- [ ] [auth-scope] 최소 인증/권한 모델과 UI disabled/error 상태 범위를 기능 Task로 확정한다.
- [ ] [audit-scope] 감사 이벤트 기록/조회/표시 범위와 후속 persistence 후보를 기능 Task로 확정한다.
## 완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 검토 항목: 없음
- 리뷰 코멘트: 없음
## 범위 제외
- production identity provider, 장기 secret rotation, 조직/테넌트 모델 완성은 이 스케치에서 바로 구현하지 않는다.
- durable audit storage를 구현 범위로 확정하지 않는다. 필요하면 별도 Milestone 또는 SDD 결정으로 분리한다.
- 기존 runner production job 운영 정책 전체를 완성하지 않는다.
## 작업 컨텍스트
- 관련 경로: `services/core/internal/httpserver/**`, `apps/client/**`, `packages/flutter/oto_console/**`
- 표준선(선택): 기존 Core route와 Flutter action surface를 source of truth 후보로 먼저 검토하고, API/schema 확장이 필요할 때만 별도 계약 변경으로 분리한다.
- 선행 작업: `Control Plane 운영 액션 표면`
- 후속 작업: 운영 대시보드 고도화, durable persistence UI
- 확인 필요: `구현 잠금 > 결정 필요` 항목과 SDD 사용자 리뷰로 분리한다.