AWS CloudTrail은 AWS 환경에서 발생하는 모든 API 호출을 기록하고 저장하는 서비스로, 보안 모니터링과 운영 분석을 위한 핵심 도구입니다. 하지만 로그 데이터가 방대해질수록 효과적으로 분석하기 위해 별도의 시스템 구성이 필요합니다.
이번 글에서는 CloudTrail 로그 분석을 위한 시스템 구성 및 설정 방법을 상세히 설명하고, 이를 활용한 실제 사례를 살펴보겠습니다.
CloudTrail 로그 분석 시스템 구성
CloudTrail 로그 분석을 위해서는 로그를 저장, 처리, 분석할 수 있는 시스템을 구성해야 합니다. 일반적으로 다음과 같은 아키텍처를 사용합니다.
기본 아키텍처 구성요소
CloudTrail 로그 분석 시스템의 기본적인 구성 요소는 다음과 같습니다.
- CloudTrail 로그 수집기: AWS CloudTrail이 API 호출 이벤트를 기록하여 Amazon S3 버킷에 저장
- 로그 필터: AWS Lambda 또는 AWS Glue를 이용하여 로그 데이터를 변환하고 필터링
- 로그 분석기: Amazon Athena 또는 Amazon OpenSearch Service를 활용하여 로그 내용을 쿼리하고 분석
- 모니터링 및 경고: Amazon CloudWatch와 AWS Security Hub를 이용하여 이벤트를 탐지하여 알림, 대응 처리
로그 수집기: CloudTrail 로그 저장소 설정
CloudTrail 로그는 기본적으로 Amazon S3 버킷에 저장됩니다. 로그를 보다 효율적으로 관리하기 위해 AWS Lake Formation을 활용하면 데이터 레이크(Data Lake) 환경을 구축할 수 있습니다.
- S3 버킷 생성: CloudTrail 콘솔에서 로그를 저장할 S3 버킷을 생성
- AWS Lake Formation 연동: 여러 서비스의 로그 데이터를 수집하여 중앙 집중 관리
로그 필터: AWS Lambda를 활용한 로그 필터링 및 전처리
CloudTrail 로그는 JSON 형식으로 저장되며, 분석 전에 특정 필드를 추출하고 정리하는 과정이 필요합니다. AWS Lambda 함수를 활용하면 S3 버킷에 새로운 로그 파일이 추가될 때마다 자동으로 필터링 및 전처리가 가능합니다.
로그 분석기: Amazon Athena를 이용한 쿼리 분석
CloudTrail 로그는 JSON 형식이므로 Amazon Athena를 활용하면 SQL 기반으로 쉽게 쿼리할 수 있습니다.
- AWS Glue Data Catalog에서 CloudTrail 로그 데이터를 테이블로 변환
- Athena에서 SQL 쿼리를 실행하여 로그 분석
로그 분석기: Amazon OpenSearch Service를 활용한 시각화
Amazon OpenSearch Service를 이용하면 CloudTrail 로그를 시각화할 수 있습니다.
- Logstash를 사용하여 CloudTrail 로그를 OpenSearch로 전송
- Kibana 대시보드의 각종 그래프와 위젯을 활용하여 AWS 리소스와 대한 API 호출 패턴 및 보안 이벤트를 가시화
로그 분석 설정
AWS CloudTrail 로그 분석 시스템을 구축하기 위해 다음 설정방법을 따릅니다.
CloudTrail 설정
- CloudTrail 활성화: AWS 콘솔 또는 CLI를 사용하여 CloudTrail을 활성화ㅎ마. 기본적으로 CloudTrail은 AWS 계정에서 발생하는 관리 이벤트를 로깅 설정
- 모든 리전에서 로깅 활성화: CloudTrail은 기본적으로 트레일이 생성된 리전에서만 로깅을 수행함. 글로벌 서비스 감사를 위해 Multi-Region Trail 설정
- S3 버킷 및 암호화: CloudTrail 로그는 Amazon S3 버킷에 저장. 로그를 안전하게 저장하기 위해 S3 버킷 암호화(SSE-S3 또는 SSE-KMS) 사용
- CloudWatch Logs 통합: 실시간 로그 모니터링을 위해 CloudTrail 로그를 CloudWatch로 전송. CloudTrail 로그 스트림을 CloudWatch Logs로 전송하여 로그 데이터를 검색, 필터링 및 분석함
- AWS Security Hub 및 GuardDuty 연동: 보안 경고를 위한 추가 서비스 활용.
- Security Hub는 AWS 계정의 보안 상태를 종합적으로 확인할 수 있는 대시보드 제공
- GuardDuty는 악의적인 활동을 모니터링하고 경고 제공
이벤트 필터링 및 알림 설정
- CloudTrail 로그에서 특정 이벤트를 필터링하여 모니터링. IAM 정책 변경 이벤트를 감지하고 알림 수신
- CloudWatch 경보를 설정하여 특정 조건에 따라 알림 수신
로그 분석 사례
CloudTrail을 이용하여 기업 거버넌스, 보안, 운영, 장애 등 여러 영역에서 이상행위를 탐지하고 활용할 수 있습니다.
사례 1: 보안 이상 행위 감지
한 글로벌 IT 기업은 CloudTrail을 활용하여 IAM 사용자 계정에서 이상 징후를 감지하는 시스템을 구축했습니다.
- 특정 사용자가 일반적인 근무시간 외에 IAM 권한을 변경하는 이벤트 감지
- CloudWatch 경고를 통해 보안 팀에 즉시 알림 전송
- Security Hub와 연동하여 AWS GuardDuty에서 추가 탐지 수행
사례 2: 규정 준수 및 감사 로그 관리
한 금융 기관은 CloudTrail 로그를 저장하여 금융 규제 준수를 위한 감사 시스템을 운영했습니다.
- CloudTrail 로그를 Amazon S3 및 AWS Lake Formation을 활용해 장기 보관
- Athena를 활용한 쿼리 분석으로 데이터 무결성 검증
- 모든 보안 이벤트를 AWS Security Hub와 통합하여 컴플라이언스 보고서 자동 생성
사례 3: 운영 장애 분석
한 e-commerce 기업은 EC2 인스턴스의 예기치 않은 종료 이벤트를 감지하고 원인을 분석하는 시스템을 구축했습니다.
- CloudTrail 로그에서 StopInstances API 호출 분석
- Athena를 이용해 장애 발생 시간 및 실행 사용자 추적
- OpenSearch에서 API 호출 로그를 시각화하여 운영 효율성 향상