[AWS] 점검페이지 리디렉션 구성하기 (with WAF)
관련 포스트
https://blog.naver.com/sssang97/222921945368
AWS의 서비스들을 활용해서 점검페이지를 구성해보겠다.
아마 우리는 대충 이러한 동작을 기대할 것이다.
내부망의 경우에는 개발자나 관계자가 접근을 할 수 있어야 하니 접근을 열어줘야 한다.
하지만 외부망의 경우에는 미리 구성해놓은 점검 페이지로 이동을 하게끔 한다.
이런건 사실 응용프로그램 수준에서 구현하려 해도 할 수는 있다.
하지만 WAF를 쓰면 이런 통제를 좀더 탄력적으로 수행할 수 있다.

-
허용할 IP 목록의 관리 같은걸 콘솔을 통해 유동적으로 관리할 수 있으며
-
접속과 차단 내역을 추적할 수 있고
-
추후 다른 형태의 트래픽 제어가 필요할 경우에도 탄력적으로 대응할 수 있다.
먼저 다음과 같은 cloudfront 배포 페이지가 있다고 가정하겠다.
여기에다가 WAF를 달아볼 것이다.
IP 집합 만들기
내부망에 대한 접근은 허용해줄 필요가 있다고 말했었다.
이런 IP 목록에 대한 관리는 IP set을 통해서 처리하게 된다.
생성 페이지로 이동해서
이름 짓고, 허용해줄 IP 목록을 넣어준다.
이런식으로 만들어지면 잘 된 것이다.
웹 ACL 만들기
이게 블락을 걸어주는 녀석이다.
생성 창으로 이동해서
cloudfront 배포 타입으로 고르고, 이름을 짓고
걸어줄 cloudfront 배포를 연결해준다.
다음에는 이제 차단/허용 규칙을 정의해줘야 한다.
나는 화이트리스트를 전부 허용해주고 나머지를 차단하는 형태로 구성을 해보겠다.
이렇게 추가하고
디폴트동작은 블락.
그리고 커스텀 리스폰스를 헤더를 설정해서 내 블로그로 리다이렉트시키도록 유도했다.
내가 실수한게 있는데, 상태코드는 302로 넣어야 한다.
규칙이 여러개인 경우에는 우선순위 설정도 가능하다.
그렇게 해서 만들어지면
내부망에서는 잘 접속이 되겠지만
외부망으로 접근하니 블락을 먹고 블로그로 이동됐다.
점검 on/off하기
왜인지는 모르겠는데 WAF는 간단하게 딸깍할 수 있는 기능이 없다. 왜지?
그래서 만약 점검을 종료하고 다시 모든걸 허용하게 하려면
디폴트 동작을 바꾸거나
연관된 cloudfront 리소스를 임시로 제거하면 된다.
다른 사람들의 사용사례를 보니, 리소스를 뗐다 붙였다 하는 방식으로 더 많이 사용하는 것 같더라.
서버의 경우에는 대상만 cloudfront에서 Loadbalancer로 바꿔서 비슷하게 진행하면 된다.