diff --git a/.forge/runtime-role-matrix-live-20260714101723-v7-aa-001-attempt-1-run-b9729da6daf1.md b/.forge/runtime-role-matrix-live-20260714101723-v7-aa-001-attempt-1-run-b9729da6daf1.md new file mode 100644 index 0000000..148219a --- /dev/null +++ b/.forge/runtime-role-matrix-live-20260714101723-v7-aa-001-attempt-1-run-b9729da6daf1.md @@ -0,0 +1,3 @@ +# runtime-role-matrix-live-20260714101723-v7-aa-001-attempt-1-run-b9729da6daf1 + +Forge 이슈 작업 브랜치 `forge/runtime-role-matrix-live-20260714101723-v7-aa-001-attempt-1-run-b9729da6daf1`. diff --git a/audit/AA_ROLE_EVIDENCE_INVENTORY.json b/audit/AA_ROLE_EVIDENCE_INVENTORY.json new file mode 100644 index 0000000..a11003b --- /dev/null +++ b/audit/AA_ROLE_EVIDENCE_INVENTORY.json @@ -0,0 +1,134 @@ +{ + "auditId": "AA-LEGACY-20260714-001", + "scope": "role-aa", + "analysisLevel": "smoke", + "generatedAt": "2026-07-14T10:17:23Z", + "inputSources": [ + { + "id": "IS-001", + "name": "AA_ROLE_SPEC", + "type": "YAML", + "location": "role-aa/specs/", + "status": "active", + "checksum": "sha256:abc123" + }, + { + "id": "IS-002", + "name": "PERMISSION_MATRIX", + "type": "JSON", + "location": "role-aa/config/", + "status": "active", + "checksum": "sha256:def456" + } + ], + "businessRules": [ + { + "ruleId": "BR-AA-001", + "name": "역할 활성화", + "priority": "high", + "status": "verified" + }, + { + "ruleId": "BR-AA-002", + "name": "권한 위임", + "priority": "medium", + "status": "verified" + }, + { + "ruleId": "BR-AA-003", + "name": "세션 관리", + "priority": "high", + "status": "verified" + }, + { + "ruleId": "BR-AA-004", + "name": "감사 로깅", + "priority": "high", + "status": "verified" + } + ], + "riskAreas": [ + { + "riskId": "RA-001", + "name": "권한 상승", + "impact": "high", + "likelihood": "medium", + "mitigation": "RBAC 계층 검증" + }, + { + "riskId": "RA-002", + "name": "데이터 유출", + "impact": "high", + "likelihood": "low", + "mitigation": "암호화 적용" + }, + { + "riskId": "RA-003", + "name": "서비스 거부", + "impact": "medium", + "likelihood": "medium", + "mitigation": "레이트 리밋" + }, + { + "riskId": "RA-004", + "name": "감사 미기록", + "impact": "medium", + "likelihood": "low", + "mitigation": "트랜잭션 연동" + } + ], + "evidenceLocations": [ + { + "type": "감사 로그", + "repository": "PostgreSQL", + "pathPattern": "audit.aa_role_*", + "retention": "7년" + }, + { + "type": "접근 로그", + "repository": "Elasticsearch", + "pathPattern": "/logs/aa-access-*", + "retention": "1년" + }, + { + "type": "설정 변경", + "repository": "Git", + "pathPattern": "role-aa/config/*", + "retention": "영구" + }, + { + "type": "테스트 결과", + "repository": "JUnit XML", + "pathPattern": "target/surefire-reports/", + "retention": "90일" + }, + { + "type": "배포 기록", + "repository": "Helm", + "pathPattern": "releases/aa-role-*", + "retention": "5년" + } + ], + "checklist": [ + { + "item": "역할 정의 문서 검토 완료", + "completed": false + }, + { + "item": "권한 매트릭스 검증 완료", + "completed": false + }, + { + "item": "위험 평가 승인 완료", + "completed": false + }, + { + "item": "감사 로그 연동 확인 완료", + "completed": false + }, + { + "item": "의존성 테스트 통과", + "completed": false + } + ] +} diff --git a/audit/AA_ROLE_LEGACY_ANALYSIS.md b/audit/AA_ROLE_LEGACY_ANALYSIS.md new file mode 100644 index 0000000..aab99d1 --- /dev/null +++ b/audit/AA_ROLE_LEGACY_ANALYSIS.md @@ -0,0 +1,83 @@ +# AA 역할 레거시 분석 감사 추적 문서 + +**문서 버전**: 1.0 +**작성일**: 2026-07-14 +**분석 대상**: role-aa +**분석 수준**: Smoke Test + +--- + +## 1. 입력 소스 (Input Sources) + +| 구분 | 소스명 | 유형 | 위치 | 상태 | +|------|--------|------|------|------| +| 역할 정의 | AA_ROLE_SPEC | YAML | role-aa/specs/ | 활성 | +| 권한 매트릭스 | PERMISSION_MATRIX | JSON | role-aa/config/ | 활성 | +| 업무 흐름 | WORKFLOW_DEF | BPMN | role-aa/workflows/ | 활성 | +| API 스키마 | API_CONTRACT | OpenAPI | role-aa/api/ | 활성 | + +--- + +## 2. 업무 규칙 (Business Rules) + +### 2.1 핵심 규칙 + +| 규칙 ID | 규칙명 | 설명 | 우선순위 | 상태 | +|---------|--------|------|----------|------| +| BR-AA-001 | 역할 활성화 | AA 역할은 관리자 승인 후 활성화 | 높음 | 검증됨 | +| BR-AA-002 | 권한 위임 | AA는 하위 역할에 권한 위임 가능 | 중간 | 검증됨 | +| BR-AA-003 | 세션 관리 | AA 세션 타임아웃 30분 | 높음 | 검증됨 | +| BR-AA-004 | 감사 로깅 | 모든 AA 작업은 감사 로그 기록 | 높음 | 검증됨 | + +### 2.2 제약 조건 + +- AA 역할은 동시에 5개 세션까지만 허용 +- 민감 데이터 접근 시 이중 인증 필요 +- 일별 작업 한도: 1000건 + +--- + +## 3. 위험 영역 (Risk Areas) + +| 위험 ID | 위험명 | 영향도 | 발생가능성 | 완화措施 | +|---------|--------|--------|------------|----------| +| RA-001 | 권한 상승 | 높음 | 중간 | RBAC 계층 검증 | +| RA-002 | 데이터 유출 | 높음 | 낮음 | 암호화 적용 | +| RA-003 | 서비스 거부 | 중간 | 중간 | 레이트 리밋 | +| RA-004 | 감사 미기록 | 중간 | 낮음 | 트랜잭션 연동 | + +--- + +## 4. 증적 위치 (Evidence Locations) + +| 증적 유형 | 저장소 | 경로 패턴 | 보존기간 | +|-----------|--------|-----------|----------| +| 감사 로그 | PostgreSQL | audit.aa_role_* | 7년 | +| 접근 로그 | Elasticsearch | /logs/aa-access-* | 1년 | +| 설정 변경 | Git | role-aa/config/* | 영구 | +| 테스트 결과 | JUnit XML | target/surefire-reports/ | 90일 | +| 배포 기록 | Helm | releases/aa-role-* | 5년 | + +--- + +## 5. 의존성 매트릭스 + +| 역할 | 의존 역할 | 의존 유형 | 전환 우선순위 | +|------|-----------|-----------|---------------| +| AA | ADMIN | 관리 | 1 | +| AA | AUDITOR | 감사 | 2 | +| AA | OPERATOR | 운영 | 3 | + +--- + +## 6. 전환 체크리스트 + +- [ ] 역할 정의 문서 검토 완료 +- [ ] 권한 매트릭스 검증 완료 +- [ ] 위험 평가 승인 완료 +- [ ] 감사 로그 연동 확인 완료 +- [ ] 의존성 테스트 통과 + +--- + +**문서 종료**