안녕하세요.
베스핀글로벌 클라우드기술지원팀 이주원 입니다.
오늘은 고객 문의 중 해외 IP 차단하는 방법에 대한 문의가 있어 해당 내용을 토대로 AWS의 WAF 서비스를 이용한 해외 IP 차단 방법을 간략히 설명하고자 합니다.
AWS WAF 란?
AWS 의 Amazon CloudFront, API Gateway, ALB, AppSync 와 같은 서비스로 전달되는 HTTP, HTTPS 전송에 대해 요청을 모니터링하고 통제하는 방화벽 서비스 입니다.
요청되는 IP 주소, 쿼리 문자열 등에 대해 지정된 조건에 따라 통제할 수 있으며, 지역적인 요청에 대한 통제도 할 수 있습니다.
자세한 내용 ? https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html
오늘은 그 중 간단한 WAF 설정을 통한 ALB에 해외 IP 를 차단하여 한국 IP만 접근을 허용하도록 하는 방법에 대해 소개해보겠습니다.
사전 필요 요소 : ALB 구성은 따로 설명하지 않고, 이미 구성되어있다고 가정합니다.
1. Web ACL 생성
WAF & Shield 서비스 메뉴로 접속해 Web ACL 생성하기를 누릅니다.
- Step 1 : Web ACL 의 기본 요소를 지정합니다.
이름과 설명을 입력 후 설정할 리소스 타입을 선택합니다.
테스트는 ALB 로 진행하기 때문에 지역적 리소스를 선택 후 ALB 가 위치한 Seoul 리전을 선택합니다.
할당할 리소스 선택하기를 통해 ALB 를 선택해줍니다.
- Step 2 : 접근을 제어할 규칙을 추가합니다.
나의 규칙 추가하기를 통해 나만의 규칙을 생성합니다.
Rule 빌더를 통해 규칙을 생성합니다.
규칙 요소에서 '지역으로 부터 요청' 을 선택 후 '한국'을 선택한 뒤 Allow 를 설정합니다. (지역 선택 중 리스트에 없는 지역은 지원하지 않습니다.)
추가된 규칙을 확인 후 Default 작업을 선택합니다.
Default 는 규칙에 해당되지 않은 일반적인 경우를 말하며, 현재 지역위치에 따라 Allow 를 해줬기 때문에 Default 값은 Block 으로 설정합니다.
- Step 3 : 규칙에 대한 우선순위 설정
1개의 규칙만 있으므로 넘어갑니다.
- Step 4 : Metric 설정
WAF는 기본적으로 CloudWatch를 통한 모니터링이 가능하며, 이때 metric 에 대한 이름을 설정합니다.
Sample 을 통한 테스트 가능여부에 대해 설정합니다.
- Step 5 : Review
모든 설정 완료 후 검토 작업을 실시합니다.
2. 정상 구동 테스트
이제 WAF 를 통한 지역적 IP 제한 하는 설정을 모두 완료했습니다.
구성한 Web ACL 을 접속하면 Overview를 통해 ACL 로 요청되는 Request 수를 바로 볼 수 있고 구성된 내용에 대해 확인할 수 있습니다.
설정한 ALB 가 가리키는 '베스핀글로벌 테크블로그' 홈페이지로 접속을 통해 테스트해봅니다.
- 현재 저는 한국에서 작업중이며, 일반적인 브라우저를 통해 해당 주소로 접속합니다. 접속 결과 이상없습니다.
이제는 해외 IP로 접속을 테스트 해봐야 하는데, 이를 위한 테스트 사이트가 있어 해당 사이트로 테스트를 진행합니다.
해외 IP 접속 및 속도 테스트 : https://tools.pingdom.com/
같은 '베스핀글로벌 테크블로그' 주소로 런던에서 요청 시 테스트 합니다.
테스트 결과 Response code가 403 으로 Block 된 것을 확인할 수 있습니다.
이와 같이 WAF 를 통해 접속이 제한되게 되면, 403 코드를 반환하며 해당 서버로 접속을 제한합니다.
간단한 WAF 설정을 통해 국내(한국) IP 의 요청만 허용하는 예제를 구성해봤습니다.
응용하여 IP 제한 등을 추가로 설정하고 우선순위를 설정하여 여러 규칙에 대해 방화벽 설정을 구성할 수 있습니다.
도움이 되셨기를 바랍니다.
감사합니다.
베스핀글로벌
클라우드기술지원팀
이주원
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.