AWS Firewall Manager 및 Amazon Data Firehose를 사용하여 Splunk로 AWS WAF 로그 전송
Michael Friedenthal, Aman Kaur Gandhi, JJ Johnson, Amazon Web Services
요약
과거에는 데이터를 Splunk로 이동하는 두 가지 방법, 즉 푸시 아키텍처 또는 풀 아키텍처가 있었습니다. 풀 아키텍처는 재시도를 통해 전송 데이터를 보장하지만 Splunk에서 데이터를 폴링하는 전용 리소스가 필요합니다. 일반적으로 풀 아키텍처는 폴링으로 인해 실시간이 아닙니다. 푸시 아키텍처는 일반적으로 지연 시간이 짧고 확장성이 뛰어나며 운영 복잡성과 비용을 줄여줍니다. 하지만 전송이 보장되는 것은 아니며 일반적으로 에이전트가 필요합니다.
Amazon Data Firehose와 Splunk의 통합은 HTTP 이벤트 수집기(HEC)를 통해 Splunk에 실시간 스트리밍 데이터를 제공합니다. 이 통합은 푸시 아키텍처와 풀 아키텍처의 장점을 모두 제공합니다. 즉, 재시도를 통한 데이터 전송을 보장하고 실시간에 가깝고 지연 시간이 짧고 복잡성이 낮습니다. HEC는 HTTP 또는 HTTPS를 통해 빠르고 효율적으로 데이터를 Splunk로 직접 전송합니다. HEC는 토큰 기반이므로 애플리케이션이나 지원 파일에 보안 인증 정보를 하드코딩할 필요가 없습니다.
AWS Firewall Manager 정책에서는 모든 계정의 모든 AWS WAF 웹 ACL 트래픽에 대한 로깅을 구성할 수 있으며, 그런 다음 Firehose 전송 스트림을 사용하여 모니터링, 시각화 및 분석을 위해 해당 로그 데이터를 Splunk로 전송할 수 있습니다. 이 솔루션에는 다음과 같은 이점이 있습니다.
모든 계정의 AWS WAF 웹 ACL 트래픽에 대한 중앙 관리 및 로깅
단일 AWS 계정과의 Splunk 통합
확장성
거의 실시간으로 로그 데이터 전송
서버리스 솔루션을 사용하여 비용을 최적화하므로 사용하지 않은 리소스에 대해 비용을 지불할 필요가 없습니다.
사전 조건 및 제한 사항
사전 조건
AWS Organizations의 조직에 속한 활성 AWS 계정
Firehose로 로깅을 활성화하려면 다음 권한으로 로그인해야 합니다.
iam:CreateServiceLinkedRolefirehose:ListDeliveryStreamswafv2:PutLoggingConfiguration
AWS WAF와 해당 웹 ACL을 구성해야 합니다. 지침은 AWS WAF 시작하기를 참고하십시오.
AWS Firewall Manager를 설정해야 합니다. 지침은 AWS Firewall Manager 사전 요구 사항을 참조하세요.
AWS WAF에 대한 Firewall Manager 보안 정책을 구성해야 합니다. 지침은 AWS Firewall ManagerAWS WAF 정책 시작하기를 참고하십시오.
Splunk는 Firehose에서 연결할 수 있는 공개 HTTP 엔드포인트로 설정해야 합니다.
제한 사항
AWS 계정은 AWS Organizations의 단일 조직에서 관리되어야 합니다.
웹 ACL은 전송 스트림과 동일한 리전에 있어야 합니다. Amazon CloudFront에 로그를 캡처하는 경우 미국 동부(버지니아 북부) 리전
us-east-1에서 Firehose 전송 스트림을 생성하십시오.Firehose용 Splunk 애드온은 유료 Splunk 클라우드 배포, 분산형 Splunk Enterprise 배포 및 단일 인스턴스 Splunk Enterprise 배포에 사용할 수 있습니다. 이 애드온은 무료 평가판 Splunk Cloud 배포에는 지원되지 않습니다.
아키텍처
대상 기술 스택
Firewall Manager
Firehose
Amazon Simple Storage Service(S3)
AWS WAF
Splunk
대상 아키텍처
다음 이미지는 Firewall Manager를 사용하여 모든 AWS WAF 데이터를 중앙에서 기록하고 Firehose를 통해 Splunk로 전송하는 방법을 보여줍니다.

AWS WAF 웹 ACL은 Firewall Manager에 방화벽 로그 데이터를 전송합니다.
Firewall Manager는 Firehose로 로그 데이터를 전송합니다.
Firehose 전송 스트림은 로그 데이터를 Splunk와 S3 버킷으로 전달합니다. S3 버킷은 Firehose 전송 스트림에 오류가 발생하는 경우 백업 역할을 합니다.
자동화 및 규모 조정
이 솔루션은 조직 내 모든 AWS WAF 웹 ALC를 확장하고 수용하도록 설계되었습니다. 모든 웹 ACL이 동일한 Firehose 인스턴스를 사용하도록 구성할 수 있습니다. 하지만 여러 Firehose 인스턴스를 설정하고 사용하려는 경우에는 그렇게 할 수 있습니다.
툴
AWS 서비스
AWS Firewall Manager는 AWS Organizations의 계정과 애플리케이션 전체에 대한 방화벽 규칙을 중앙에서 구성 및 관리할 수 있는 보안 관리 서비스입니다.
Amazon Data Firehose를 사용하면 지원되는 타사 서비스 공급자(예: Splunk)가 소유한 다른 AWS 서비스, 사용자 지정 HTTP 엔드포인트, HTTP 엔드포인트에 실시간 스트리밍 데이터
를 전송할 수 있습니다. Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.
AWS WAF는 보호되는 웹 애플리케이션 리소스로 전달되는 HTTP 및 HTTPS 요청을 모니터링할 수 있게 해주는 웹 애플리케이션 방화벽입니다.
기타 도구
Splunk
는 로그 데이터를 모니터링, 시각화 및 분석하는 데 도움이 됩니다.
에픽
| 작업 | 설명 | 필요한 기술 |
|---|---|---|
AWS용 Splunk 앱을 설치합니다. |
| 보안 관리자, Splunk 관리자 |
AWS WAF 추가 기능을 설치합니다. | 이전 지침을 반복하여 Splunk용 AWS 웹 애플리케이션 방화벽 추가 기능을 설치합니다. | 보안 관리자, Splunk 관리자 |
Firehose용 Splunk 추가 기능을 설치하고 구성합니다. |
| 보안 관리자, Splunk 관리자 |
| 작업 | 설명 | 필요한 기술 |
|---|---|---|
Firehose에 Splunk 대상에 대한 액세스 권한을 부여합니다. | Firehose가 Splunk 대상에 액세스하고 로그 데이터를 S3 버킷에 백업할 수 있도록 허용하는 액세스 정책을 구성합니다. 자세한 정보는 Firehose에 Splunk 대상에 대한 액세스 권한 부여를 참조하세요. | 보안 관리자 |
Firehose 전송 스트림을 생성합니다. | AWS WAF용 웹 ACL을 관리하는 동일한 계정에서 Firehose에서 전송 스트림을 생성하십시오. 전송 스트림을 생성할 때 IAM 역할을 보유하고 있어야 합니다. Firehose는 이 IAM 역할을 사용하여 지정된 S3 버킷에 대한 액세스 권한을 얻습니다. 지침은 전송 스트림 생성을 참고하십시오. 다음 사항에 유의하세요.
HTTP 이벤트 컬렉터에서 구성한 각 토큰에 대해 이 프로세스를 반복합니다. | 보안 관리자 |
전송 스트림을 테스트합니다. | 전송 스트림을 테스트하여 제대로 구성되었는지 확인합니다. 지침은 Firehose 설명서에서 Splunk를 대상으로 사용하여 테스트하기를 참고하십시오. | 보안 관리자 |
| 작업 | 설명 | 필요한 기술 |
|---|---|---|
Firewall Manager 정책을 구성합니다. | 로깅을 활성화하고 로그를 올바른 Firehose 전송 스트림으로 전달하도록 Firewall Manager 정책을 구성해야 합니다. 자세한 정보와 지침은 AWS WAF 정책의 로깅 구성을 참고하십시오. | 보안 관리자 |
관련 리소스
AWS 리소스
웹 ACL 트래픽 로깅(AWS WAF 설명서)
AWS WAF 정책을 위한 로깅 구성(AWS WAF 설명서)
자습서: Amazon Data Firehose를 사용하여 Splunk에 VPC 흐름 로그 전송(Firehose 설명서)
Amazon Data Firehose를 사용하여 Splunk에 VPC 흐름 로그를 푸시하려면 어떻게 해야 하나요?
(AWS 지식 센터) Amazon Data Firehose를 사용하여 Splunk에 데이터 통합 강화
(AWS 블로그 게시물)
Splunk 설명서