CloudWatch Unified Data Store를 사용한 보안 가시성 대시보드
Amazon CloudWatch Unified Data Store는 개별 로그 그룹 이름을 알지 못해도 AWS 서비스 전반의 로그 데이터를 중앙에서 검색, 구성, 쿼리할 수 있는 방법을 제공합니다. 이를 가능하게 하기 위해 CloudWatch Unified Data Store는 패싯(facets)을 사용합니다. 패싯은 로그 데이터의 필드로, CloudWatch에서 대화형 필터링, 그룹화, 분석을 위해 노출됩니다. @data_source_name, @data_source_type, @data_format과 같은 기본 패싯은 별도의 구성 없이 모든 Standard 로그 클래스의 로그 그룹에서 자동으로 사용할 수 있습니다. CloudWatch Logs Insights 콘솔에서 패싯 값을 선택하여 데이터를 시각적으로 탐색하거나, 쿼리 내에서 패싯을 참조하여 일치하는 로그 그룹과 이벤트로만 검색 범위를 효율적으로 좁힐 수 있습니다.
이러한 패싯을 통해 CloudWatch는 AWS CloudTrail 및 Amazon VPC Flow Logs와 같은 출처 데이터 소스별로 로그를 자동 분류합니다. 따라서 로그 그룹이 몇 개가 존재하든, 이름이 무엇이든 관계없이 @data_source_name 패싯을 사용하여 모든 CloudTrail 또는 VPC Flow Log 데이터를 로그 그룹 전반에 걸쳐 쿼리할 수 있습니다.
CloudWatch 교차 계정 교차 리전 로그 중앙화를 활용하면 이 기반 위에 보안 분석을 구축할 수 있습니다. 이 가이드에서는 CloudWatch 데이터 소스를 활용하여 CloudTrail 및 VPC Flow Logs 활동에 대한 근실시간 가시성을 제공하는 사전 구축된 샘플 CloudWatch Dashboard를 AWS CloudFormation을 통해 배포하는 과정을 안내합니다. 각 위젯이 제공하는 정보와 보안 모니터링, 인시던트 조사, 컴플라이언스 가시성을 위해 대시보드를 활용하는 방법을 설명합니다.
이 대시보드가 중요한 이유
보안 팀은 AWS 계정 전반의 API 활동과 네트워크 트래픽에 대해 중앙화된 근실시간 가시성이 필요합니다. 중앙화된 대시보드가 없으면 여러 로그 그룹에 걸쳐 수동으로 쿼리를 실행하고, CloudTrail과 VPC Flow Logs 간의 데이터를 상호 연관시키며, 분산된 소스에서 보안 컨텍스트를 하나하나 조합해야 합니다.
이 대시보드는 다음과 같은 주요 과제를 해결합니다:
- 로그 그룹 이름에 대한 의존성 없음:
SOURCE logGroups() | filterIndex @data_source_name을 사용하여 계정 내 로그 그룹의 이름과 관계없이 CloudWatch Unified Data Store 기본 패싯을 통해 CloudTrail과 VPC Flow Logs를 동적으로 검색합니다. - 이중 포맷 지원: 로그 포맷 선호도에 따라 Standard(AWS 네이티브 필드명) 또는 OCSF(Open Cybersecurity Schema Framework) 버전의 대시보드를 배포합니다.
- 서비스 간 상관분석: CloudTrail API 활동과 VPC Flow Log 네트워크 데이터를 나란히 배치하여 보안 이벤트를 시각적으로 상호 연관시킬 수 있습니다.
- 계정 간 이식성: 동일한 CloudFormation 템플릿이 CloudTrail과 VPC Flow Logs가 CloudWatch Logs로 전달되는 모든 계정에서 로그 그룹 이름 파라미터 변경 없이 동작합니다.
사전 요구 사항
배포 전에 계정에 필요한 데이터 소스가 있는지 확인하세요:
aws logs list-aggregate-log-group-summaries --group-by DATA_SOURCE_NAME_AND_TYPE
출력에서 aws_cloudtrail과 amazon_vpc 항목이 표시되어야 합니다. 이 항목이 누락된 경우 다음을 확인하세요:
- CloudTrail 이 CloudWatch Logs로 로그를 전달하도록 구성되어 있는지 확인합니다.
- VPC Flow Logs 가 하나 이상의 VPC에서 CloudWatch Logs로 전달되도록 구성되어 있는지 확인합니다.
대시보드 배포
- CloudWatch_Dashboard_CloudTrail_VPC.yaml 템플릿을 다운로드합니다.
- CloudFormation → Create stack → With new resources로 이동합니다.
CloudWatch_Dashboard_CloudTrail_VPC.yaml템플릿을 업로드합니다.- 파라미터를 구성합니다:
- DashboardName: 대시보드 이름을 지정합니다 (기본값:
CloudTrail-VPC-Dashboard). - LogFormat: AWS 네이티브 CloudTrail/VPC Flow Log 필드명을 사용하려면
Standard를, Open Cybersecurity Schema Framework 정규화 필드를 사용하려면OCSF를 선택합니다.
- DashboardName: 대시보드 이름을 지정합니다 (기본값:
- 검토 후 스택을 생성합니다.