## GUARDiA Manager (frontend) - pages/DrConsole.tsx — DR 재해복구 관제 (시나리오/RTO-RPO/테스트 실행) - pages/NetworkConsole.tsx — 네트워크 장비 관제 (백업/diff/상태) - pages/CsapConsole.tsx — CSAP 준수율 대시보드 (점검/Excel 다운로드) - App.tsx — 3개 라우트 추가 (/dr, /network, /csap) - Sidebar.tsx — '운영 관제' 그룹 메뉴 추가 - AppLayout.tsx — 페이지 타이틀 3개 추가 ## GUARDiA Messenger (React Native) - app/(tabs)/dr.tsx — DR 모니터링 화면 (M-01) - app/(tabs)/network.tsx — 네트워크 장비 현황 화면 (M-02) - app/(tabs)/_layout.tsx — DR·네트워크 탭 추가 - services/api.ts — DR/네트워크/CSAP API 함수 추가 - hooks/useBiometric.ts — 생체인증 훅 (M-03) - hooks/useOfflineCache.ts — 오프라인 캐시 훅 (M-04) ## 매뉴얼 - 16_API_명세서.md — v2.2.0 업데이트 - 39_DR_네트워크장비_CSAP_운영가이드.md — Manager/Messenger UI 연동 현황 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
15 KiB
GUARDiA ITSM — DR 자동화 · 네트워크 장비 관리 · CSAP 점검 운영가이드
문서 버전: 1.0
작성일: 2026-05-31
대상: 시스템 운영자, 보안 담당자, IT 관리자
목차
1. DR 자동화 (재해복구)
1.1 개요
GUARDiA ITSM의 DR(Disaster Recovery) 자동화 모듈은 공공기관 BCP(업무 연속성 계획) 요건을 충족하기 위해 다음 기능을 제공합니다.
| 기능 | 설명 |
|---|---|
| DR 시나리오 관리 | 서버별 Failover 절차 사전 정의 |
| 복구 테스트 자동화 | SSH 기반 단계별 복구 시뮬레이션 |
| 백업 무결성 검증 | SSH → SHA-256 해시 자동 검증 |
| RTO/RPO 추적 | 목표 대비 실적 대시보드 |
1.2 DR 시나리오 등록
POST /api/dr/scenarios
Authorization: Bearer {admin_token}
Content-Type: application/json
{
"name": "WAS-01 장애 시나리오",
"scenario_type": "SERVER_FAILURE",
"primary_server_id": 3,
"standby_server_id": 7,
"rto_minutes": 120,
"rpo_minutes": 30,
"failover_steps": [
{"name": "서비스 중단 확인", "type": "http", "url": "http://was01/health"},
{"name": "대기 서버 활성화", "type": "ssh", "command": "systemctl start tomcat"},
{"name": "로드밸런서 전환", "type": "http", "url": "http://lb/switch/was01/was02"}
],
"healthcheck_url": "http://was02/health"
}
시나리오 타입:
| 타입 | 설명 |
|---|---|
SERVER_FAILURE |
단일 서버 장애 (기본) |
SITE_FAILURE |
데이터센터 전체 장애 |
DATA_CORRUPTION |
데이터 손상/삭제 복구 |
1.3 복구 테스트 실행
POST /api/dr/test
Authorization: Bearer {engineer_token}
Content-Type: application/json
{
"scenario_id": 1,
"test_type": "RECOVERY"
}
테스트 결과 예시:
{
"test_id": 42,
"status": "PASS",
"rto_actual_minutes": 18,
"steps": [
{"step": 1, "name": "서비스 중단 확인", "status": "OK", "elapsed_sec": 2.1},
{"step": 2, "name": "대기 서버 활성화", "status": "OK", "elapsed_sec": 45.3},
{"step": 3, "name": "로드밸런서 전환", "status": "OK", "elapsed_sec": 1.8},
{"step": 4, "name": "헬스체크", "status": "OK", "elapsed_sec": 3.0}
]
}
1.4 백업 무결성 검증
POST /api/dr/backup-verify
Authorization: Bearer {engineer_token}
Content-Type: application/json
{
"server_name": "DB-01"
}
응답 예시:
{
"success": true,
"server_name": "DB-01",
"latest_file": "db_backup_20260531.tar.gz",
"file_size_mb": 4821,
"sha256": "a3f2c8d1...",
"modified_at": "May 31 02:00"
}
중요:
ip_addr,backup_path등 서버 정보는 응답에 포함되지 않습니다.
1.5 RTO/RPO 현황 조회
GET /api/dr/rto-rpo
Authorization: Bearer {engineer_token}
응답 예시:
{
"scenarios": [
{
"scenario_name": "WAS-01 장애 시나리오",
"rto_target": 120,
"rto_actual_avg": 18.5,
"rto_met": true,
"last_test_result": "PASS"
}
]
}
1.6 Failover 실행 (긴급 시)
POST /api/dr/failover/{scenario_id}
Authorization: Bearer {admin_token}
주의: ADMIN 전용. 긴급 상황 외 반드시 복구 테스트(
/api/dr/test)로 먼저 검증 후 실행.
1.7 운영 절차
정기 DR 테스트 (권장: 분기 1회)
- 대시보드에서 시나리오 목록 확인:
GET /api/dr/dashboard - 테스트 실행:
POST /api/dr/test(test_type: RECOVERY) - 결과 확인:
GET /api/dr/test/{id} - 백업 검증:
POST /api/dr/backup-verify - CSAP O-02 항목 자동 갱신 확인
공공기관 BCP 권장 기준:
| 등급 | RTO | RPO |
|---|---|---|
| 1등급 (중요) | 4시간 이내 | 1시간 이내 |
| 2등급 (보통) | 8시간 이내 | 4시간 이내 |
| 3등급 (낮음) | 24시간 이내 | 24시간 이내 |
2. 네트워크 장비 관리
2.1 개요
스위치·라우터·방화벽·L4 등 네트워크 장비를 SSH 기반으로 에이전트 없이 관리합니다.
| 기능 | 설명 |
|---|---|
| 장비 인벤토리 | 기관별 네트워크 장비 목록 |
| 설정 백업 | 벤더별 표준 명령어로 설정 자동 백업 |
| 변경 감지 | 이전 백업과 diff 비교, 변경 시 알림 |
| SSH 명령 실행 | 안전 명령만 허용 (위험 명령 차단) |
| 토폴로지 조회 | 기관별 장비 타입 분류 |
2.2 지원 장비
| 장비 타입 | 벤더 | OS 타입 |
|---|---|---|
| SWITCH | CISCO | cisco_ios |
| SWITCH | HUAWEI | huawei_vrp |
| ROUTER | CISCO | cisco_ios |
| FIREWALL | PIOLINK | linux |
| FIREWALL | SECUI | linux |
| LOAD_BALANCER | RADWARE | linux |
| SWITCH | JUNIPER | junos |
2.3 장비 등록
POST /api/network/devices
Authorization: Bearer {admin_token}
Content-Type: application/json
{
"device_name": "Core-Switch-01",
"device_type": "SWITCH",
"vendor": "CISCO",
"model": "Catalyst 9300",
"os_type": "cisco_ios",
"ip_addr": "10.0.1.1",
"ssh_user": "admin",
"ssh_password": "sw_password_2026",
"ssh_port": 22,
"location": "서울시청 IDC 2층 랙 A-03",
"inst_id": 1
}
보안:
ip_addr,ssh_user,ssh_password는 AES-256-GCM 암호화 저장. API 응답에 미포함.
2.4 설정 백업
POST /api/network/devices/{id}/backup
Authorization: Bearer {engineer_token}
응답 예시:
{
"success": true,
"device_name": "Core-Switch-01",
"backup_id": 15,
"config_hash": "a3f2c8d1e4b7...",
"changed_lines": 0,
"backed_up_at": "2026-05-31T14:30:00"
}
changed_lines > 0: 이전 백업 대비 설정 변경 감지- 변경 10줄 이상: MEDIUM 알림 발송
- 변경 50줄 이상: HIGH 알림 발송
2.5 설정 변경 비교
GET /api/network/devices/{id}/diff
Authorization: Bearer {engineer_token}
최근 2개 백업 자동 비교. old_id, new_id 파라미터로 특정 버전 간 비교 가능.
응답 예시:
{
"changed": true,
"added_lines": 3,
"removed_lines": 1,
"diff": [
"--- 이전 설정",
"+++ 현재 설정",
"@@ -105,7 +105,10 @@",
"- switchport access vlan 10",
"+ switchport access vlan 20",
"+ switchport mode access"
]
}
2.6 SSH 명령 실행
POST /api/network/devices/{id}/command
Authorization: Bearer {engineer_token}
Content-Type: application/json
{
"command": "show interfaces status",
"timeout": 30
}
차단 명령어 (실행 불가):
write erase,factory-reset,reload,rebootrm -rf,mkfs,fdisk,delete flash:
2.7 토폴로지 조회
GET /api/network/topology?inst_id=1
Authorization: Bearer {engineer_token}
2.8 운영 절차
정기 설정 백업 (권장: 주 1회)
1. 기관별 장비 목록 확인: GET /api/network/devices?inst_id={기관ID}
2. 장비별 설정 백업 실행: POST /api/network/devices/{id}/backup
3. 변경 감지 시 diff 확인: GET /api/network/devices/{id}/diff
4. 무단 변경 발견 시 → 변경관리 CAB 등록 + 감사 기록
3. CSAP 공공기관 보안 자동 점검
3.1 개요
CSAP(클라우드보안인증제) + ISMS-P 기반의 공공기관 보안 체크리스트를 자동으로 점검합니다.
| 구분 | 항목 수 | 자동 점검 | 수동 확인 |
|---|---|---|---|
| 관리적 보안 (M) | 5개 | - | 5개 |
| 기술적 보안 (T) | 12개 | 10개 | 2개 |
| 운영 보안 (O) | 5개 | 4개 | 1개 |
| 물리적 보안 (P) | 3개 | 1개 | 2개 |
| 합계 | 25개 | 15개 | 10개 |
실제 구현은 CSAP_ITEMS 확장으로 최대 100개 항목까지 지원.
3.2 자동 점검 실행
POST /api/compliance/csap/scan
Authorization: Bearer {admin_token}
Content-Type: application/json
{
"inst_id": 1
}
응답 예시:
{
"scan_id": "CSAP-20260531-143022",
"inst_id": 1,
"total_items": 25,
"pass": 18,
"fail": 4,
"partial": 1,
"manual_required": 2,
"compliance_rate": 82.0,
"grade": "B",
"critical_findings": [
"T-03: SSH root 직접 로그인 차단",
"T-05: 보안 패치 최신화 (30일 이내)"
]
}
3.3 준수율 등급 기준
| 준수율 | 등급 | 공공기관 의미 |
|---|---|---|
| 90% 이상 | A (우수) | 보안감사 대응 양호 |
| 70~89% | B (보통) | 개선 권고 |
| 50~69% | C (미흡) | 개선 계획 즉시 수립 |
| 50% 미만 | D (부적합) | 즉시 조치 필요 |
3.4 점검 항목 조회
GET /api/compliance/csap/items?category=기술적&auto_only=true
Authorization: Bearer {token}
3.5 점검 결과 상세 조회
GET /api/compliance/csap/results/{scan_id}
Authorization: Bearer {token}
3.6 수동 항목 증적 업로드
자동 점검 불가 항목(M-01 정보보호 정책 등)은 담당자가 수동으로 증적을 업로드합니다.
POST /api/compliance/csap/evidence/{item_id}
Authorization: Bearer {token}
Content-Type: application/json
{
"item_id": "M-01",
"inst_id": 1,
"finding": "정보보호 정책서 2026년 개정본 확인",
"evidence_note": "첨부파일: 정보보호정책_2026.pdf (SharePoint 저장)",
"status": "PASS"
}
3.7 보고서 생성
HTML 보고서 (웹 열람·인쇄용):
GET /api/compliance/csap/report/html?scan_id=CSAP-20260531-143022
Excel 보고서 (공문 첨부용):
GET /api/compliance/csap/report/excel?scan_id=CSAP-20260531-143022
Excel 파일명: CSAP_CSAP-20260531-143022_20260531.xlsx
3.8 기관별 준수율 대시보드
GET /api/compliance/csap/dashboard
Authorization: Bearer {token}
응답 예시:
{
"institutions": [
{"inst_id": 1, "compliance_rate": 82.0, "grade": "B", "scanned_at": "2026-05-31T14:30:22"},
{"inst_id": 2, "compliance_rate": 91.5, "grade": "A", "scanned_at": "2026-05-30T09:15:00"}
]
}
3.9 자동 점검 항목 상세
| 항목ID | 항목명 | 자동 점검 방법 |
|---|---|---|
| T-03 | SSH root 로그인 차단 | SSH → sshd_config PermitRootLogin no 확인 |
| T-11 | 취약점 정기 스캔 | tb_vuln_scan 90일 이내 이력 확인 |
| O-01 | 로그 보존 6개월 | tb_audit_log 최오래된 레코드 날짜 확인 |
| O-02 | 백업 무결성 검증 | tb_dr_test 90일 이내 PASS 이력 확인 |
| O-03 | 변경 관리 이행 | tb_change_request 등록 건수 확인 |
| P-02 | DR 테스트 이행 | tb_dr_test 1년 이내 PASS 이력 확인 |
3.10 운영 절차
분기별 CSAP 점검 절차:
1. CSAP 자동 점검 실행
POST /api/compliance/csap/scan {"inst_id": 기관ID}
2. 결과 확인 및 FAIL 항목 조치
GET /api/compliance/csap/results/{scan_id}
→ FAIL 항목별 개선 조치 시행
3. 수동 항목 증적 업로드
POST /api/compliance/csap/evidence/{item_id}
→ M-01 정책서, M-02 조직도, P-01 출입통제 기록 등
4. 보고서 생성 및 배포
GET /api/compliance/csap/report/excel?scan_id=...
→ 부서장 보고 / 보안감사 대비 보관
5. 대시보드 모니터링
GET /api/compliance/csap/dashboard
→ 기관별 준수율 추이 확인
4. 통합 운영 시나리오
시나리오 1: 장애 발생 → DR 실행 → CSAP 업데이트
[인시던트 발생]
→ POST /api/incidents (인시던트 등록)
→ POST /api/dr/failover/{scenario_id} (긴급 Failover, ADMIN)
→ GET /api/dr/rto-rpo (RTO 실적 확인)
→ POST /api/compliance/csap/scan (P-02 DR 테스트 항목 자동 갱신)
시나리오 2: 네트워크 변경 → 자동 감지 → 변경관리 연계
[설정 변경 의심]
→ POST /api/network/devices/{id}/backup (최신 백업 실행)
→ GET /api/network/devices/{id}/diff (변경 내역 확인)
→ POST /api/change (변경관리 CAB 등록)
→ POST /api/audit/record (감사 기록)
시나리오 3: 분기별 보안 감사 준비
[분기 점검 시작]
→ POST /api/dr/test (DR 복구 테스트)
→ POST /api/network/devices/{id}/backup (전 장비 설정 백업)
→ POST /api/compliance/csap/scan (CSAP 전체 점검)
→ POST /api/compliance/csap/evidence/* (수동 증적 업로드)
→ GET /api/compliance/csap/report/excel (보고서 생성)
API 빠른 참조
DR 자동화 (/api/dr)
| Method | Endpoint | 권한 | 설명 |
|---|---|---|---|
| GET | /api/dr/scenarios |
ENGINEER+ | 시나리오 목록 |
| POST | /api/dr/scenarios |
ADMIN | 시나리오 등록 |
| POST | /api/dr/test |
ENGINEER+ | 복구 테스트 실행 |
| GET | /api/dr/test/{id} |
ENGINEER+ | 테스트 결과 |
| GET | /api/dr/tests |
ENGINEER+ | 테스트 이력 |
| POST | /api/dr/backup-verify |
ENGINEER+ | 백업 무결성 검증 |
| POST | /api/dr/failover/{id} |
ADMIN | Failover 실행 |
| GET | /api/dr/rto-rpo |
ENGINEER+ | RTO/RPO 현황 |
| GET | /api/dr/dashboard |
ENGINEER+ | DR 전체 현황 |
네트워크 장비 (/api/network)
| Method | Endpoint | 권한 | 설명 |
|---|---|---|---|
| GET | /api/network/devices |
ENGINEER+ | 장비 목록 |
| POST | /api/network/devices |
ADMIN | 장비 등록 |
| PUT | /api/network/devices/{id} |
ADMIN | 장비 수정 |
| DELETE | /api/network/devices/{id} |
ADMIN | 장비 비활성화 |
| POST | /api/network/devices/{id}/backup |
ENGINEER+ | 설정 백업 |
| GET | /api/network/devices/{id}/backups |
ENGINEER+ | 백업 이력 |
| GET | /api/network/devices/{id}/diff |
ENGINEER+ | 설정 변경 비교 |
| POST | /api/network/devices/{id}/command |
ENGINEER+ | SSH 명령 실행 |
| GET | /api/network/topology |
ENGINEER+ | 토폴로지 조회 |
CSAP 점검 (/api/compliance/csap)
| Method | Endpoint | 권한 | 설명 |
|---|---|---|---|
| POST | /api/compliance/csap/scan |
ADMIN | 전체 자동 점검 |
| GET | /api/compliance/csap/items |
ALL | 점검 항목 목록 |
| GET | /api/compliance/csap/results |
ALL | 점검 결과 목록 |
| GET | /api/compliance/csap/results/{id} |
ALL | 배치 상세 결과 |
| POST | /api/compliance/csap/evidence/{id} |
ALL | 수동 증적 업로드 |
| GET | /api/compliance/csap/report/html |
ALL | HTML 보고서 |
| GET | /api/compliance/csap/report/excel |
ALL | Excel 보고서 |
| GET | /api/compliance/csap/dashboard |
ALL | 준수율 대시보드 |
5. Manager / Messenger UI 연동 현황 (2026-05-31 추가)
GUARDiA Manager (포트 8090)
| 메뉴 경로 | URL | 기능 |
|---|---|---|
| 운영 관제 → DR 재해복구 | /dr |
시나리오 현황, RTO/RPO, 복구 테스트 실행 |
| 운영 관제 → 네트워크 장비 | /network |
장비 목록, 백업 실행, 설정 diff |
| 운영 관제 → CSAP 점검 | /csap |
준수율 대시보드, 점검 실행, Excel 다운로드 |
GUARDiA Messenger (모바일 앱)
| 탭 | 화면 | 기능 |
|---|---|---|
| 🛡️ DR | app/(tabs)/dr.tsx |
시나리오 상태, RTO 실적, 복구 테스트 |
| 🔀 네트워크 | app/(tabs)/network.tsx |
장비 목록, 백업 실행, 상태 확인 |
신규 hooks
| 파일 | 기능 |
|---|---|
hooks/useBiometric.ts |
지문/Face ID 생체인증 |
hooks/useOfflineCache.ts |
오프라인 캐시 (SecureStore 기반) |
Copyright © 2026 GUARDiA All Rights Reserved.