4.8 KiB
4.8 KiB
SDD: Identity·권한과 감사
위치
- Milestone: Milestone 문서
- Phase: PHASE.md
상태
[초안]
SDD 잠금
- 상태: 잠금
- 사용자 리뷰: 요청됨
- 잠금 항목:
- [D01] 초기 identity source of truth와 연동 방식
문제 / 비목표
- 문제: project boundary만으로는 사용자·서비스 actor mapping, resource·action authorization, secret access와 immutable audit·retention을 제품 수준으로 운영할 수 없다.
- 비목표:
- identity provider 제품 구현
- 기본 project-scoped resource identity 재구현
- retrieval backend 내부 ACL 엔진 대체
Source of Truth
| 영역 | 기준 | 메모 |
|---|---|---|
| Roadmap | Milestone 문서 | identity·권한·감사 범위 |
| Project Boundary | Control Plane Resource API SDD | resource scope와 cross-project 기본 차단 |
| Secret | Integration 카탈로그 SDD | secret reference와 runtime resolution |
| User Decision | USER_REVIEW.md | identity source of truth |
State Machine
| 상태 | 진입 조건 | 다음 상태 | 근거 |
|---|---|---|---|
| pending | external 또는 local identity가 처음 관찰됨 | active, rejected | mapping record |
| active | identity mapping과 project membership이 유효함 | suspended, revoked | membership revision |
| suspended | 일시 차단 또는 provider 상태 불명확 | active, revoked | admin action |
| revoked | mapping·credential 사용이 종료됨 | 없음 | revoke audit |
Interface Contract
- 입력: authenticated principal, project, resource, action, reason과 correlation identity
- 출력: allow·deny decision, matched policy revision, secret resolution scope와 immutable audit event
- 금지:
- identity mapping이 불명확한 principal을 implicit admin으로 처리하지 않는다.
- authorization decision 없이 secret을 resolve하지 않는다.
- audit actor·reason·result를 사후 수정하지 않는다.
Acceptance Scenarios
| ID | Milestone Task | Given | When | Then |
|---|---|---|---|---|
| S01 | identity-boundary |
user·service·external principal | mapping·sync | source와 project membership이 추적 가능하게 연결된다 |
| S02 | rbac |
role·resource·action policy | API·worker 요청 | 같은 policy revision으로 allow·deny가 결정된다 |
| S03 | secret-scope |
identity·project·executor | secret resolve | 승인된 범위만 일회성으로 resolve된다 |
| S04 | audit-events |
변경·거부·실패 action | 처리 | actor·target·reason·result가 immutable event로 남는다 |
| S05 | retention-policy |
trace·feedback·dataset·audit | 만료·삭제 | 유형별 redaction·retention·deletion 규칙이 적용된다 |
| S06 | isolation-tests |
unauthorized·mapping 오류·tampering case | negative suite | action·secret이 차단되고 audit 변조가 검출된다 |
Evidence Map
| Scenario | Required Evidence | agent-task 연결 |
완료 Evidence 기대 |
|---|---|---|---|
| S01 | identity mapping lifecycle test | agent-task/m-multi-project-security-and-audit/... |
identity-boundary evidence |
| S02 | role·permission matrix | agent-task/m-multi-project-security-and-audit/... |
rbac allow·deny evidence |
| S03 | cross-project·executor secret test | agent-task/m-multi-project-security-and-audit/... |
secret-scope deny evidence |
| S04 | immutable audit test | agent-task/m-multi-project-security-and-audit/... |
audit-events chain |
| S05 | retention·redaction deletion test | agent-task/m-multi-project-security-and-audit/... |
retention-policy evidence |
| S06 | authorization·tamper negative suite | agent-task/m-multi-project-security-and-audit/... |
isolation-tests PASS |
Cross-repo Dependencies
- 없음
Drift Check
- Milestone 기능 Task와 Acceptance Scenario가 일치한다.
- Evidence Map이 code-review/complete.log에서 검증 가능하다.
- project boundary와 identity·authorization 책임을 분리했다.
- 사용자 결정 [D01]이 해결되었다.
사용자 리뷰 이력
- USER_REVIEW.md 요청 중
작업 컨텍스트
- 표준선: deny-by-default, external principal mapping, policy revision, scoped secret, immutable audit
- Milestone은
[스케치]이며 [D01]과 승격 조건이 해소될 때까지 구현 잠금 상태를 유지한다.