이전 포스팅 글에서 AWS WAF 풀 로깅을 S3로 저장을 설정해봤다.
풀 로그 기록 활성을 진행한 뒤 한가지 문제? 가 있다.
해킹 공격이 발생하여 WAF 규칙의 로그를 확인하고 싶을 때 S3에 저장된 데이터가 어마어마해서 찾기가 너무 힘들다.
따라서 이번 글은 S3에 저장된 로깅정보를 Database 쿼리문을 통해 필요한 정보만 추출할 수 있는 서비스 해볼 것이다.
#AWS Glue 와 Athena 서비스란?
AWS Glue는 분석에 필요한 데이터를 쉽게 탐색, 준비, 조합할 수 있도록 제공하는 서비스이다.
AWS Athena는 표준 SQL을 사용해 S3에 저장된 데이터를 간편하게 분석할 수 있는 쿼리 서비스이다.
이번 글은 위에 서비스를 사용해서 나에게 정말 필요한 정보만 가져올 수 있도록 구축을 진행하고자 한다.
#AWS Glue 크롤러 생성
AWS Glue 콘솔 이동 후 Crawler 설정을 진행한다.
이전 포스팅글에서 WAF Log가 저장되는 S3경로를 확인하여 아래 입력 값으로 지정한다.
스토어 추가는 기본 옵션으로 넘어가자
여기서 IAM 역할 생성이 필요하며 네이밍은 본인이 원하는 이름으로 지정하여 생성한다.
이 기능이 필요한 목적?은 일별로 S3에 적재되는 WAF Log 데이터를 가져와서 적재하는 역할이 필요함으로 매일 UTC기준 12:00로 설정하였다 (사전에 테스트가 필요한 경우 온디맨드 설정으로 추천한다)
다음은 클로러에서 출력된 데이터를 적재하여야하는 데이터베이스가 필요하여 데이터 베이스 추가를 진행한 뒤 크롤러 생성은 마무리하면 Athena를 사용하기 위한 기본적인 준비는 완료될 것이다.
클로러가 정상적으로 동작한다면 다음 Athena 콘솔로 이동하여 DataBase 목록을 확인하면 클로러가 진행되면서 생성된 Database와 Table을 확인할 수 있다.
생성된 테이블을 확인하였으면 아래처럼 쿼리문을 작성하여 나에게 꼭 맞는 데이터만 가져올 수 있게된다.
#참고 쿼리문
쿼리문을 공식 AWS 문서에서 참고할 수 있으며 본인이 작성한 쿼리문 예시는 아래 공유한다.
select to_iso8601(from_unixtime(timestamp / 1000)) as time_ISO_8601,
terminatingruletype as Rule_Type,
terminating_reason_detail.terminatingrule.ruleid as Block_Reason,
action as Action,
httprequest.clientip as Source_IP,
httprequest.country as Country,
httprequest.uri as URI,
terminatingrulematchdetails as Match_Reason,
httprequest.args as Args,
httprequest.httpMethod as HttpMethod,
responsecodesent as response,
httprequest.headers as Header
from "데이터베이스명"."테이블명"
cross join unnest(coalesce(waf_full_log_kor.rulegrouplist, ARRAY[NULL])) as t(terminating_reason_detail)
where (terminating_reason_detail.terminatingrule.ruleid != '' or action ='BLOCK') and date_format(from_unixtime(timestamp / 1000),'%Y-%m-%d') between '2021-06-03' and '2021-06-04'
'Cloud' 카테고리의 다른 글
[AWS] WorkSpaces 업무 망 분리 (0) | 2021.08.04 |
---|---|
[AWS] 웹 방화벽(Web Application Firewall, WAF) 로깅 구성 - 3 (0) | 2021.06.07 |
[AWS] 웹 방화벽(Web Application Firewall, WAF) 로깅 구성 - 1 (0) | 2021.06.07 |
[AWS] 웹 방화벽(Web Application Firewall, WAF) - 3 (0) | 2021.06.06 |
[AWS] 웹 방화벽(Web Application Firewall, WAF) - 2 (0) | 2021.06.05 |