WAF란?
AWS에서 제공하는 웹 애플리케이션 방화벽. 애플리케이션에 대한 웹 트래픽을 모니터링하고, 악성 요청 또는 보안 위협으로부터 애플리케이션을 안전하게 보호할 수 있다.
L7계층에서 작동하면 HTTP 및 HTTPS 트래픽을 모니터링하고 필터링한다.
사용 방법
1. web ACL 생성
WAF 페이지는 기본적으로 영어로 나온다.
Add AWS resources 버튼 클릭
WAF를 적용시킬 ALB를 선택하자. 로드밸런서 관련 내용은 이 글 참고(https://itstoryy.tistory.com/32)
2. 접근제어 규칙 설정
다양한 방법으로 요청을 차단할 수 있다. 이 글에서는 국가단위로 트래픽을 차단해 보겠다.
match the statement로 설정 후 Country codes에 접근을 허용할 국가를 선택하자. 필자는 VPN을 이용하여 미국에서 오는 트래픽도 테스트하기 위해 미국도 추가했다. 일반적인 상황이라면 한국만 넣어도 된다. 그 후 Action에서 Allow체크하자.
규칙생성 확인 후 Default web ~ 부분은 해당 규칙에 부합하지 않을 때 어떻게 할 거냐고 물어보는 것이다. 우리는 위에서 한국 트래픽을 Allow 해줬기 때문에 Block을 체크해 주면 된다.
3. 규칙 우선순위 설정
여러 개의 규칙이 있으면 우선순위를 설정할 수 있다.
4. metric 설정
Cloudwatch를 통해 모니터링할 수 있다.
5. waf 테스트
VPN을 통해 베트남에서 접근을 시도하니 403 Forbidden이 나오면서 접근이 막힌다
미국 트래픽도 허용한다고 설정했으니 미국에서도 정상적으로 접근이 된다
만약 VPN이 없다면 이 사이트에서도 테스트해 볼 수 있다 (https://tools.pingdom.com/)
a. 도쿄에서 접근 시도
b. 미국에서 접근 시도
WAF - Web ACLs 탭에서 허용되고 차단된 요청들을 모니터링 할 수 있다.
아래에서는 차단된 ip를 볼 수 있다. 위에서 테스트했던 VN(베트남), JP(일본) 등등의 국가에서 차단되었음을 알 수 있다.
'AWS > Service' 카테고리의 다른 글
[AWS] Athena (0) | 2023.05.02 |
---|---|
[AWS] AWS Backup (0) | 2023.04.30 |
[AWS] SNS (0) | 2023.04.29 |
[AWS] SSL (0) | 2023.04.29 |
[AWS] ALB & NLB (0) | 2023.04.28 |