From ba0a1dc69b5de133f6b150a17fe989610117fe57 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Tue, 14 Jul 2026 07:44:39 +0000 Subject: [PATCH] =?UTF-8?q?AA=20=EC=97=AD=ED=95=A0=20=EB=A0=88=EA=B1=B0?= =?UTF-8?q?=EC=8B=9C=20=EB=B6=84=EC=84=9D=20smoke=20(role-aa-live-v2-001)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/audit/role-aa-evidence-register.json | 220 ++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 docs/audit/role-aa-evidence-register.json diff --git a/docs/audit/role-aa-evidence-register.json b/docs/audit/role-aa-evidence-register.json new file mode 100644 index 0000000..cc134b7 --- /dev/null +++ b/docs/audit/role-aa-evidence-register.json @@ -0,0 +1,220 @@ +{ + "auditTrail": { + "documentId": "AT-AA-LEGACY-001", + "version": "1.0", + "role": "AA", + "analysisType": "legacy-transition", + "generatedDate": "2026-07-14T15:22:00Z" + }, + "inputSources": [ + { + "id": "IN-001", + "type": "database", + "name": "레거시 거래 원장", + "location": "db/legacy/transaction_ledger", + "dataRange": "2015-01-01~2025-12-31", + "recordCount": 15000000, + "sensitivity": "high" + }, + { + "id": "IN-002", + "type": "configuration", + "name": "역할 매트릭스 정의", + "location": "config/role-matrix.yaml", + "schemaVersion": "2.3.1", + "sensitivity": "critical" + }, + { + "id": "IN-003", + "type": "api-specification", + "name": "내부 서비스 인터페이스", + "location": "api/spec/internal-v2.yaml", + "endpointCount": 47, + "sensitivity": "medium" + }, + { + "id": "IN-004", + "type": "migration-script", + "name": "데이터 마이그레이션", + "location": "scripts/migrate/aa-role.sql", + "targetSchema": "role_matrix_v3", + "sensitivity": "critical" + }, + { + "id": "IN-005", + "type": "audit-log", + "name": "감사 로그", + "location": "logs/audit/aa-role-*.log", + "retentionDays": 2555, + "sensitivity": "high" + } + ], + "businessRules": { + "rolePermissions": [ + { + "ruleId": "BR-001", + "description": "AA 역할은 읽기 전용 분석만 허용", + "condition": "분석 세션 시작 시", + "priority": "high", + "enforcement": "mandatory" + }, + { + "ruleId": "BR-002", + "description": "AA 역할은 보고서 생성 가능", + "condition": "데이터 범위 내", + "priority": "medium", + "enforcement": "permissive" + }, + { + "ruleId": "BR-003", + "description": "AA 역할은 직접 데이터 수정 불가", + "condition": "모든 시나리오", + "priority": "high", + "enforcement": "mandatory" + }, + { + "ruleId": "BR-004", + "description": "AA 역할은 감사 로그 생성 의무", + "condition": "모든 操作 시", + "priority": "high", + "enforcement": "mandatory" + } + ], + "dataAccessRules": [ + { + "ruleId": "DR-001", + "description": "민감 데이터 접근 시 이중 인증 필요", + "constraint": "PII 포함 필드", + "twoFactorRequired": true + }, + { + "ruleId": "DR-002", + "description": "일일 조회 한도 1,000건", + "constraint": "분석 목적", + "dailyLimit": 1000 + }, + { + "ruleId": "DR-003", + "description": "대량 추출 시 관리자 승인 필요", + "constraint": "100건 이상", + "approvalRequired": true, + "threshold": 100 + } + ] + }, + "riskAreas": [ + { + "riskId": "RK-001", + "type": "data-loss", + "description": "마이그레이션 중 거래 데이터 누락", + "impact": "high", + "likelihood": "medium", + "riskScore": 6, + "mitigation": { + "strategy": "이중 백업", + "controls": ["pre-migration-backup", "post-migration-validation", "incremental-sync"] + } + }, + { + "riskId": "RK-002", + "type": "access-control-bypass", + "description": "레거시 권한 우회 가능성", + "impact": "high", + "likelihood": "low", + "riskScore": 3, + "mitigation": { + "strategy": "역할 검증 강화", + "controls": ["role-verification-layer", "privilege-escalation-detection"] + } + }, + { + "riskId": "RK-003", + "type": "audit-trail-gap", + "description": "로그 불일치", + "impact": "medium", + "likelihood": "medium", + "riskScore": 4, + "mitigation": { + "strategy": "상관관계 검증", + "controls": ["log-correlation-analysis", "sequence-verification"] + } + }, + { + "riskId": "RK-004", + "type": "performance-degradation", + "description": "대량 분석 쿼리", + "impact": "low", + "likelihood": "high", + "riskScore": 3, + "mitigation": { + "strategy": "페이징 적용", + "controls": ["query-optimization", "result-caching"] + } + } + ], + "evidenceLocations": [ + { + "evidenceId": "EV-001", + "location": "db/legacy/transaction_ledger.audit_id", + "type": "integrity", + "verificationMethod": "FK 참조 확인", + "frequency": "per-transaction" + }, + { + "evidenceId": "EV-002", + "location": "config/role-matrix.yaml.schema_version", + "type": "version-control", + "verificationMethod": "스키마 비교", + "frequency": "per-change" + }, + { + "evidenceId": "EV-003", + "location": "logs/audit/aa-role-*.log.sequence", + "type": "sequence", + "verificationMethod": "연속성 검증", + "frequency": "daily" + }, + { + "evidenceId": "EV-004", + "location": "api/spec/internal-v2.yaml.checksum", + "type": "integrity", + "verificationMethod": "해시 검증", + "frequency": "per-deployment" + } + ], + "evidenceCollectionMatrix": [ + { + "evidenceType": "transaction-log", + "collectionFrequency": "realtime", + "retentionDays": 2555, + "owner": "AA Analyst" + }, + { + "evidenceType": "access-log", + "collectionFrequency": "daily", + "retentionDays": 1825, + "owner": "Security Team" + }, + { + "evidenceType": "configuration-change-history", + "collectionFrequency": "on-change", + "retentionDays": 3650, + "owner": "Config Manager" + }, + { + "evidenceType": "error-log", + "collectionFrequency": "realtime", + "retentionDays": 1095, + "owner": "AA Analyst" + } + ], + "verificationChecklist": [ + "legacy-data-integrity-verification-complete", + "role-permission-mapping-accuracy-confirmed", + "audit-log-sequential-verification-complete", + "api-compatibility-test-complete", + "migration-script-validation-complete", + "rollback-plan-prepared", + "stakeholder-approval-obtained" + ] +}