전체 데이터 흐름
매일 02:00 KST → 자동 스캔 시작 → 계정별 병렬 수집 → 데이터 변환 → 대시보드 반영
| 단계 | 역할 |
|---|
| 1. 스케줄 트리거 | 매일 02:00 KST에 스캔을 자동 시작 |
| 2. 스캔 실행 관리 | 전체 스캔 과정을 순서대로 실행하고 오류 시 재시도 |
| 3. 데이터 수집 | 컴플라이언스 스캔, Security Hub, CloudTrail 3종을 병렬 수집 |
| 4. 원본 저장 | 수집된 원본 데이터 저장 (90일 보존) |
| 5. 데이터 변환 | 원본 데이터를 분석용 형식으로 변환, 일일 변경 분석 |
| 6. 분석 데이터 저장 | 변환된 분석용 데이터 저장 (영구 보존) |
| 7. 분석 쿼리 | 사전 구성된 분석 뷰를 통해 데이터 조회 |
| 8. 대시보드 시각화 | 새로고침 시 항상 최신 수집 데이터 표시 |
주요 처리 단계
스캔 스케줄
| 항목 | 값 |
|---|
| 기본 설정 | 매일 02:00 KST |
| 변경 방법 | 스캔 스케줄 설정 참고 |
왜 새벽 2시인가: 전날 발생한 보안 이벤트가 AWS 서비스에 모두 반영된 이후 수집하기 위함입니다. CloudTrail과 Security Hub 모두 이벤트 전파에 수 시간이 걸릴 수 있습니다.
스캔 실행 과정
| 순서 | 단계 | 설명 |
|---|
| 1 | 계정 목록 로드 | 등록된 스캔 대상 계정 목록 확인 |
| 2 | 스캔 역할 확인 및 생성 | 대상 계정의 스캔 역할 존재 여부 확인. 없으면 자동 생성 |
| 3 | 계정별 병렬 스캔 | 최대 5개 계정 동시 처리, 각 계정에서 3개 수집기 동시 실행 |
| 4 | 데이터 변환 | 원본 데이터를 분석용 형식으로 변환 |
| 5 | 완료 | 전체 타임아웃: 2시간 |
각 스캔 작업은 실패 시 최대 2회 재시도됩니다 (30초 시작, 재시도마다 간격 2배 증가). 전체 실행이 실패하면 알림이 발송됩니다.
데이터 수집
3개의 수집기가 각 계정에서 병렬로 실행됩니다.
| 수집기 | 수집 대상 | 소요 시간 |
|---|
| 컴플라이언스 스캔 | ISMS-P 보안 점검 결과 (PASS/FAIL) | 5-10분/계정 |
| Security Hub 수집 | GuardDuty, Inspector 등 탐지 결과 | 2-5분/계정 |
| CloudTrail 수집 | 보안 관련 API 호출 이력 | 2-5분/계정 |
모든 수집기는 대상 계정의 스캔 역할을 위임받아 읽기 전용으로 데이터를 수집합니다. 대상 계정의 리소스를 수정하지 않습니다.
데이터 변환
수집된 원본 데이터를 분석에 최적화된 형식으로 변환합니다.
변환 내용:
- 중첩된 데이터 구조를 평면화하여 조회 성능 최적화
- 날짜/계정별 분류 적용
- 일일 변경 분석: 전일 대비 신규(NEW), 해결(FIXED), 재발(REGRESSION) 항목 자동 분류
대시보드 표시
- 분석 뷰: 사전 구성된 분석 뷰를 통해 대시보드에 필요한 데이터를 자동 조회
- 시각화: 별도 캐시 없이 항상 최신 데이터를 표시하며, 브라우저 새로고침만으로 즉시 반영
크로스 계정 접근 방식
대시보드는 중앙 계정에 설치되며, 대상 계정의 데이터를 읽기 전용으로 수집합니다. 대상 계정에 필요한 스캔 역할(ISMS-P-ScanRole)은 계정 추가 시 자동으로 생성됩니다.
| 항목 | 설명 |
|---|
| 접근 방식 | 중앙 계정에서 대상 계정의 스캔 역할을 위임받아 접근 |
| 보안 장치 | ExternalId를 사용하여 비인가 접근 방지 |
| 역할 이름 | ISMS-P-ScanRole (변경 가능) |
| 권한 | 읽기 전용. 대상 계정의 리소스를 수정하지 않음 |
데이터 보존 기간
| 데이터 유형 | 설명 | 보존 기간 |
|---|
| 원본 데이터 | 수집된 그대로의 원본 | 90일 |
| 분석 데이터 | 변환된 대시보드용 데이터 | 영구 보존 |
| 계정 설정 | 스캔 대상 계정 목록 | - |
| 쿼리 캐시 | 분석 쿼리 임시 결과 | 7일 |