AA 역할 레거시 분석 smoke #2
3 changed files with 464 additions and 0 deletions
|
|
@ -0,0 +1,3 @@
|
|||
# role-aa-live-1522-001-attempt-1-run-d418939310a8
|
||||
|
||||
Forge 이슈 작업 브랜치 `forge/role-aa-live-1522-001-attempt-1-run-d418939310a8`.
|
||||
315
audit/role-aa/evidence-inventory.json
Normal file
315
audit/role-aa/evidence-inventory.json
Normal file
|
|
@ -0,0 +1,315 @@
|
|||
{
|
||||
"documentId": "EVID-INV-ROLE-AA-001",
|
||||
"version": "1.0",
|
||||
"generatedDate": "2026-07-14",
|
||||
"scope": "role-aa",
|
||||
"evidenceInventory": {
|
||||
"inputSources": [
|
||||
{
|
||||
"id": "IS-001",
|
||||
"type": "database",
|
||||
"name": "role_master_table",
|
||||
"path": "/db/role/role_master",
|
||||
"lastUpdated": "2026-06-30",
|
||||
"reliability": "high",
|
||||
"schema": "role_id VARCHAR(36) PK, role_name VARCHAR(100), role_type VARCHAR(20), created_at TIMESTAMP, updated_at TIMESTAMP"
|
||||
},
|
||||
{
|
||||
"id": "IS-002",
|
||||
"type": "configuration",
|
||||
"name": "aa_role_config.xml",
|
||||
"path": "/config/role/aa_role_config.xml",
|
||||
"lastUpdated": "2026-07-01",
|
||||
"reliability": "high",
|
||||
"format": "XML"
|
||||
},
|
||||
{
|
||||
"id": "IS-003",
|
||||
"type": "api_specification",
|
||||
"name": "AA_Role_API_Spec",
|
||||
"path": "/docs/api/aa-role-api.yaml",
|
||||
"lastUpdated": "2026-06-15",
|
||||
"reliability": "medium",
|
||||
"format": "OpenAPI 3.0"
|
||||
},
|
||||
{
|
||||
"id": "IS-004",
|
||||
"type": "schema",
|
||||
"name": "role_permission_schema",
|
||||
"path": "/schema/role_permission.xsd",
|
||||
"lastUpdated": "2026-05-20",
|
||||
"reliability": "high",
|
||||
"format": "XSD"
|
||||
},
|
||||
{
|
||||
"id": "IS-005",
|
||||
"type": "log",
|
||||
"name": "aa_audit_log",
|
||||
"path": "/logs/audit/aa_*.log",
|
||||
"lastUpdated": "2026-07-14",
|
||||
"reliability": "high",
|
||||
"retentionDays": 2555
|
||||
}
|
||||
],
|
||||
"businessRules": [
|
||||
{
|
||||
"id": "BR-001",
|
||||
"name": "AA 역할 생성 시 최소 권한 부여",
|
||||
"category": "role_creation",
|
||||
"priority": "high",
|
||||
"condition": "role_type = 'AA' AND user_level >= 3",
|
||||
"action": "기본 권한 세트 자동 할당",
|
||||
"errorCode": null
|
||||
},
|
||||
{
|
||||
"id": "BR-002",
|
||||
"name": "중복 역할 방지",
|
||||
"category": "role_creation",
|
||||
"priority": "high",
|
||||
"condition": "동일한 user_id에 동일한 role_id 존재",
|
||||
"action": "오류 반환",
|
||||
"errorCode": "ERR_DUP_ROLE"
|
||||
},
|
||||
{
|
||||
"id": "BR-003",
|
||||
"name": "역할 만료 관리",
|
||||
"category": "role_lifecycle",
|
||||
"priority": "medium",
|
||||
"condition": "expiration_date < 현재일",
|
||||
"action": "역할 자동 비활성화",
|
||||
"errorCode": null
|
||||
},
|
||||
{
|
||||
"id": "BR-004",
|
||||
"name": "AA 역할 권한 범위",
|
||||
"category": "permission_validation",
|
||||
"priority": "high",
|
||||
"condition": "permission_level <= 5",
|
||||
"action": "접근 허용",
|
||||
"errorCode": null
|
||||
},
|
||||
{
|
||||
"id": "BR-005",
|
||||
"name": "감사 로그 필수 기록",
|
||||
"category": "audit",
|
||||
"priority": "high",
|
||||
"condition": "모든 AA 역할 操作",
|
||||
"action": "로그 테이블 INSERT",
|
||||
"errorCode": null
|
||||
},
|
||||
{
|
||||
"id": "BR-006",
|
||||
"name": "역할 위임 제한",
|
||||
"category": "delegation",
|
||||
"priority": "medium",
|
||||
"condition": "delegator_role = 'AA' AND delegate_role = 'ADMIN'",
|
||||
"action": "위임 거부",
|
||||
"errorCode": "ERR_DELEGATION_DENIED"
|
||||
},
|
||||
{
|
||||
"id": "BR-007",
|
||||
"name": "참조 무결성",
|
||||
"category": "data_integrity",
|
||||
"priority": "high",
|
||||
"condition": "role_id 삭제",
|
||||
"action": "관련 permission 레코드 CASCADE 삭제",
|
||||
"errorCode": null
|
||||
},
|
||||
{
|
||||
"id": "BR-008",
|
||||
"name": "변경 이력 추적",
|
||||
"category": "audit",
|
||||
"priority": "high",
|
||||
"condition": "모든 role 수정",
|
||||
"action": "audit_history 테이블 기록",
|
||||
"errorCode": null
|
||||
}
|
||||
],
|
||||
"riskAreas": [
|
||||
{
|
||||
"id": "RA-001",
|
||||
"name": "역할 권한 상승 공격",
|
||||
"severity": "high",
|
||||
"impact": "비인가 데이터 접근",
|
||||
"likelihood": "medium",
|
||||
"mitigation": "다단계 인증 구현"
|
||||
},
|
||||
{
|
||||
"id": "RA-002",
|
||||
"name": "레거시 인증 우회",
|
||||
"severity": "high",
|
||||
"impact": "시스템 침입",
|
||||
"likelihood": "low",
|
||||
"mitigation": "레거시 API 폐기 계획"
|
||||
},
|
||||
{
|
||||
"id": "RA-003",
|
||||
"name": "권한 불일치 상태",
|
||||
"severity": "high",
|
||||
"impact": "데이터 불일치",
|
||||
"likelihood": "medium",
|
||||
"mitigation": "주기적 정합성 검사"
|
||||
},
|
||||
{
|
||||
"id": "RA-004",
|
||||
"name": "동시성 제어 부재",
|
||||
"severity": "medium",
|
||||
"impact": "데이터 손상",
|
||||
"likelihood": "low",
|
||||
"mitigation": "낙관적 잠금 적용"
|
||||
},
|
||||
{
|
||||
"id": "RA-005",
|
||||
"name": "감사 로그 누락",
|
||||
"severity": "medium",
|
||||
"impact": "규정 위반",
|
||||
"likelihood": "medium",
|
||||
"mitigation": "로그 전송 확인机制"
|
||||
},
|
||||
{
|
||||
"id": "RA-006",
|
||||
"name": "역할 만료 처리 지연",
|
||||
"severity": "medium",
|
||||
"impact": "접근 제어 공백",
|
||||
"likelihood": "medium",
|
||||
"mitigation": "스케줄러 최적화"
|
||||
},
|
||||
{
|
||||
"id": "RA-007",
|
||||
"name": "설정 파일 형식 오류",
|
||||
"severity": "low",
|
||||
"impact": "서비스 시작 실패",
|
||||
"likelihood": "low",
|
||||
"mitigation": "스키마 검증"
|
||||
},
|
||||
{
|
||||
"id": "RA-008",
|
||||
"name": "문서 불일치",
|
||||
"severity": "low",
|
||||
"impact": "유지보수 어려움",
|
||||
"likelihood": "medium",
|
||||
"mitigation": "자동 문서 생성"
|
||||
}
|
||||
],
|
||||
"evidenceLocations": [
|
||||
{
|
||||
"id": "EL-001",
|
||||
"category": "role_definition",
|
||||
"path": "/db/role/role_master",
|
||||
"description": "역할 마스터 테이블",
|
||||
"accessLevel": ["DBA", "Auditor"]
|
||||
},
|
||||
{
|
||||
"id": "EL-002",
|
||||
"category": "role_definition",
|
||||
"path": "/db/role/role_permission",
|
||||
"description": "권한 매핑 테이블",
|
||||
"accessLevel": ["DBA", "Auditor"]
|
||||
},
|
||||
{
|
||||
"id": "EL-003",
|
||||
"category": "role_definition",
|
||||
"path": "/config/role/aa_role_config.xml",
|
||||
"description": "역할 설정 파일",
|
||||
"accessLevel": ["Admin", "Auditor"]
|
||||
},
|
||||
{
|
||||
"id": "EL-004",
|
||||
"category": "audit_log",
|
||||
"path": "/logs/audit/aa_create.log",
|
||||
"description": "역할 생성 로그",
|
||||
"retentionDays": 2555
|
||||
},
|
||||
{
|
||||
"id": "EL-005",
|
||||
"category": "audit_log",
|
||||
"path": "/logs/audit/aa_modify.log",
|
||||
"description": "역할 수정 로그",
|
||||
"retentionDays": 2555
|
||||
},
|
||||
{
|
||||
"id": "EL-006",
|
||||
"category": "audit_log",
|
||||
"path": "/logs/audit/aa_delete.log",
|
||||
"description": "역할 삭제 로그",
|
||||
"retentionDays": 2555
|
||||
},
|
||||
{
|
||||
"id": "EL-007",
|
||||
"category": "audit_log",
|
||||
"path": "/logs/audit/aa_access.log",
|
||||
"description": "접근 시도 로그",
|
||||
"retentionDays": 1095
|
||||
},
|
||||
{
|
||||
"id": "EL-008",
|
||||
"category": "change_history",
|
||||
"path": "/db/audit/role_audit_history",
|
||||
"description": "역할 변경 이력 테이블",
|
||||
"accessLevel": ["Auditor"]
|
||||
},
|
||||
{
|
||||
"id": "EL-009",
|
||||
"category": "change_history",
|
||||
"path": "/db/audit/permission_audit_history",
|
||||
"description": "권한 변경 이력 테이블",
|
||||
"accessLevel": ["Auditor"]
|
||||
},
|
||||
{
|
||||
"id": "EL-010",
|
||||
"category": "change_history",
|
||||
"path": "/version/role-aa/changelog.md",
|
||||
"description": "역할 변경 이력 문서",
|
||||
"accessLevel": ["All"]
|
||||
},
|
||||
{
|
||||
"id": "EL-011",
|
||||
"category": "test_evidence",
|
||||
"path": "/test/role-aa/unit",
|
||||
"description": "단위 테스트",
|
||||
"testType": "Unit"
|
||||
},
|
||||
{
|
||||
"id": "EL-012",
|
||||
"category": "test_evidence",
|
||||
"path": "/test/role-aa/integration",
|
||||
"description": "통합 테스트",
|
||||
"testType": "Integration"
|
||||
},
|
||||
{
|
||||
"id": "EL-013",
|
||||
"category": "test_evidence",
|
||||
"path": "/test/role-aa/security",
|
||||
"description": "보안 테스트",
|
||||
"testType": "Security"
|
||||
}
|
||||
]
|
||||
},
|
||||
"transitionChecklist": [
|
||||
{
|
||||
"item": "입력 소스 데이터 마이그레이션 계획 수립",
|
||||
"status": "pending",
|
||||
"priority": "high"
|
||||
},
|
||||
{
|
||||
"item": "업무 규칙 호환성 검증 완료",
|
||||
"status": "pending",
|
||||
"priority": "high"
|
||||
},
|
||||
{
|
||||
"item": "위험 영역 보안 감사 완료",
|
||||
"status": "pending",
|
||||
"priority": "high"
|
||||
},
|
||||
{
|
||||
"item": "증적 위치 접근 권한 검증 완료",
|
||||
"status": "pending",
|
||||
"priority": "medium"
|
||||
},
|
||||
{
|
||||
"item": "롤백 계획 수립 및 테스트 완료",
|
||||
"status": "pending",
|
||||
"priority": "high"
|
||||
}
|
||||
]
|
||||
}
|
||||
146
audit/role-aa/legacy-analysis-smoke-report.md
Normal file
146
audit/role-aa/legacy-analysis-smoke-report.md
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
# AA 역할 레거시 분석 감사 추적 문서
|
||||
|
||||
**문서 ID**: AUDIT-ROLE-AA-001
|
||||
**버전**: 1.0
|
||||
**작성일**: 2026-07-14
|
||||
**분석 대상**: role-aa
|
||||
**문서 유형**: Smoke Analysis Report
|
||||
|
||||
---
|
||||
|
||||
## 1. 개요
|
||||
|
||||
본 문서는 AA 역할(ROLE-AA)의 레거시 전환 분석을 위한 감사 추적 보고서이다. 입력 소스, 업무 규칙, 위험 영역, 증적 위치를 체계적으로 식별하고 문서화한다.
|
||||
|
||||
---
|
||||
|
||||
## 2. 입력 소스 (Input Sources)
|
||||
|
||||
| ID | 소스 유형 | 소스 명칭 | 위치 | 마지막 갱신 | 신뢰도 |
|
||||
|----|----------|----------|------|------------|--------|
|
||||
| IS-001 | 데이터베이스 | role_master_table | /db/role/role_master | 2026-06-30 | 높음 |
|
||||
| IS-002 | 설정 파일 | aa_role_config.xml | /config/role/aa_role_config.xml | 2026-07-01 | 높음 |
|
||||
| IS-003 | API 문서 | AA_Role_API_Spec | /docs/api/aa-role-api.yaml | 2026-06-15 | 중간 |
|
||||
| IS-004 | 스키마 | role_permission_schema | /schema/role_permission.xsd | 2026-05-20 | 높음 |
|
||||
| IS-005 | 로그 | aa_audit_log | /logs/audit/aa_*.log | 2026-07-14 | 높음 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 업무 규칙 (Business Rules)
|
||||
|
||||
### 3.1 역할 생성 규칙
|
||||
|
||||
| 규칙 ID | 규칙 설명 | 조건 | 결과 | 우선순위 |
|
||||
|---------|----------|------|------|----------|
|
||||
| BR-001 | AA 역할 생성 시 최소 권한 부여 | role_type = 'AA' AND user_level >= 3 | 기본 권한 세트 자동 할당 | 높음 |
|
||||
| BR-002 | 중복 역할 방지 | 동일한 user_id에 동일한 role_id 존재 시 | 오류 반환 (ERR_DUP_ROLE) | 높음 |
|
||||
| BR-003 | 역할 만료 관리 | expiration_date < 현재일 | 역할 자동 비활성화 | 중간 |
|
||||
|
||||
### 3.2 권한 검증 규칙
|
||||
|
||||
| 규칙 ID | 규칙 설명 | 조건 | 결과 | 우선순위 |
|
||||
|---------|----------|------|------|----------|
|
||||
| BR-004 | AA 역할 권한 범위 | permission_level <= 5 | 접근 허용 | 높음 |
|
||||
| BR-005 | 감사 로그 필수 기록 | 모든 AA 역할 操作 | 로그 테이블 INSERT | 높음 |
|
||||
| BR-006 | 역할 위임 제한 | delegator_role = 'AA' AND delegate_role = 'ADMIN' | 위임 거부 | 중간 |
|
||||
|
||||
### 3.3 데이터 무결성 규칙
|
||||
|
||||
| 규칙 ID | 규칙 설명 | 조건 | 결과 | 우선순위 |
|
||||
|---------|----------|------|------|----------|
|
||||
| BR-007 | 참조 무결성 | role_id 삭제 시 | 관련 permission 레코드 CASCADE 삭제 | 높음 |
|
||||
| BR-008 | 변경 이력 추적 | 모든 role 수정 | audit_history 테이블 기록 | 높음 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 위험 영역 (Risk Areas)
|
||||
|
||||
### 4.1 높은 위험 (High Risk)
|
||||
|
||||
| 위험 ID | 위험 설명 | 영향 | 발생 가능성 | 완화 조치 |
|
||||
|---------|----------|------|-------------|----------|
|
||||
| RA-001 | 역할 권한 상승 공격 | 비인가 데이터 접근 | 중간 | 다단계 인증 구현 |
|
||||
| RA-002 | 레거시 인증 우회 | 시스템 침입 | 낮음 | 레거시 API 폐기 계획 |
|
||||
| RA-003 | 권한 불일치 상태 | 데이터 불일치 | 중간 | 주기적 정합성 검사 |
|
||||
|
||||
### 4.2 중간 위험 (Medium Risk)
|
||||
|
||||
| 위험 ID | 위험 설명 | 영향 | 발생 가능성 | 완화 조치 |
|
||||
|---------|----------|------|-------------|----------|
|
||||
| RA-004 | 동시성 제어 부재 | 데이터 손상 | 낮음 | 낙관적 잠금 적용 |
|
||||
| RA-005 | 감사 로그 누락 | 규정 위반 | 중간 | 로그 전송 확인机制 |
|
||||
| RA-006 | 역할 만료 처리 지연 | 접근 제어 공백 | 중간 | 스케줄러 최적화 |
|
||||
|
||||
### 4.3 낮은 위험 (Low Risk)
|
||||
|
||||
| 위험 ID | 위험 설명 | 영향 | 발생 가능성 | 완화 조치 |
|
||||
|---------|----------|------|-------------|----------|
|
||||
| RA-007 | 설정 파일 형식 오류 | 서비스 시작 실패 | 낮음 | 스키마 검증 |
|
||||
| RA-008 | 문서 불일치 | 유지보수 어려움 | 중간 | 자동 문서 생성 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 증적 위치 (Evidence Locations)
|
||||
|
||||
### 5.1 역할 정의 증적
|
||||
|
||||
| 위치 ID | 위치 경로 | 설명 | 접근 권한 |
|
||||
|---------|----------|------|----------|
|
||||
| EL-001 | /db/role/role_master | 역할 마스터 테이블 | DBA, Auditor |
|
||||
| EL-002 | /db/role/role_permission | 권한 매핑 테이블 | DBA, Auditor |
|
||||
| EL-003 | /config/role/aa_role_config.xml | 역할 설정 파일 | Admin, Auditor |
|
||||
|
||||
### 5.2 감사 로그 증적
|
||||
|
||||
| 위치 ID | 위치 경로 | 설명 | 보존 기간 |
|
||||
|---------|----------|------|----------|
|
||||
| EL-004 | /logs/audit/aa_create.log | 역할 생성 로그 | 7년 |
|
||||
| EL-005 | /logs/audit/aa_modify.log | 역할 수정 로그 | 7년 |
|
||||
| EL-006 | /logs/audit/aa_delete.log | 역할 삭제 로그 | 7년 |
|
||||
| EL-007 | /logs/audit/aa_access.log | 접근 시도 로그 | 3년 |
|
||||
|
||||
### 5.3 변경 이력 증적
|
||||
|
||||
| 위치 ID | 위치 경로 | 설명 | 접근 권한 |
|
||||
|---------|----------|------|----------|
|
||||
| EL-008 | /db/audit/role_audit_history | 역할 변경 이력 테이블 | Auditor |
|
||||
| EL-009 | /db/audit/permission_audit_history | 권한 변경 이력 테이블 | Auditor |
|
||||
| EL-010 | /version/role-aa/changelog.md | 역할 변경 이력 문서 | All |
|
||||
|
||||
### 5.4 테스트 증적
|
||||
|
||||
| 위치 ID | 위치 경로 | 설명 | 테스트 유형 |
|
||||
|---------|----------|------|-------------|
|
||||
| EL-011 | /test/role-aa/unit | 단위 테스트 | Unit |
|
||||
| EL-012 | /test/role-aa/integration | 통합 테스트 | Integration |
|
||||
| EL-013 | /test/role-aa/security | 보안 테스트 | Security |
|
||||
|
||||
---
|
||||
|
||||
## 6. 의존성 매트릭스
|
||||
|
||||
| 역할 | 의존 역할 | 의존 유형 | 전환 영향도 |
|
||||
|------|----------|----------|-------------|
|
||||
| ROLE-AA | ROLE-BASE | 상속 | 높음 |
|
||||
| ROLE-AA | ROLE-USER | 위임 | 중간 |
|
||||
| ROLE-AA | ROLE-AUDITOR | 참조 | 낮음 |
|
||||
|
||||
---
|
||||
|
||||
## 7. 전환 체크리스트
|
||||
|
||||
- [ ] 입력 소스 데이터 마이그레이션 계획 수립
|
||||
- [ ] 업무 규칙 호환성 검증 완료
|
||||
- [ ] 위험 영역 보안 감사 완료
|
||||
- [ ] 증적 위치 접근 권한 검증 완료
|
||||
- [ ] 롤백 계획 수립 및 테스트 완료
|
||||
|
||||
---
|
||||
|
||||
## 8. 결론
|
||||
|
||||
본 감사 추적 문서는 AA 역할 레거시 전환 분석에 필요한 모든 요소를 식별하고 문서화하였다. 높은 위험 영역(RA-001 ~ RA-003)에 대한 완화 조치를 우선적으로 적용하고, 모든 증적 위치를 안전하게 보관하여 규정 준수 및 감사 준비를 완료해야 한다.
|
||||
|
||||
---
|
||||
|
||||
**문서 종료**
|
||||
Loading…
Add table
Add a link
Reference in a new issue