안녕하세요 물콩입니다 !
오늘은 Amplify를 통해 생성된 CloudFront에 WAF를 적용하는 방법에 대해서 알아보겠습니다 ~
결론부터 말하자면 Amplify를 통해 생성된 도메인과, CloudFront는 AWS의 Managed Service이기 때문에 바로 WAF 적용을 할 수 없습니다.
그렇기 떄문에 직접 관리형 CloudFront를 생성하고 해당 CloudFront에 Amplify의 도메인을 등록한 뒤,
비로소야 WAF를 적용 할 수 있습니다.
Amplify 도메인에 WAF 적용하려면 ?
( 1 ) Amplify 도메인이 등록된 Amplify의 CloudFront -> WAF 적용 X
( 2 ) Amplify 도메인이 등록된 직접 관리형 CloudFront -> WAF 적용 O
Architecture
===
사용자가 amplify 웹 애플리케이션에 접속하면, AWS WAF는 네트워크 액세스를 제어하고 제한한 뒤, 허용된 요청만을 새로운 CloudFront 배포판에 요청합니다.
허용된 요청은 새로운 CloudFront를 통해 amplify 웹 애플리케이션에 전달되는데, 이때 사용자 인증 정보 또한 요청에 포함되어 전달됩니다.
이후 amplify 애플리케이션에 주기적으로 정보를 업데이트 하기 위해 Lambda와 EventBridge를 통해 CloudFront 캐시 무효화 요청을 생성 할 수 있습니다.
===
Amplify CloudFront-> WAF 적용 테스트
1. Amplify를 통한 App 배포
먼저 Amplify를 통해 간단한 App 하나를 배포해줍니다 !
저는 html을 통해 아~주 간단한 페이지 하나를 띄웠습니다 !
Amplify로 App을 배포 할 때에는 zip 파일로 업로드 해야하니 참고해주세요.
App 배포 이후, 생성된 도메인을 통해 접속 되는 모습을 확인 할 수 있습니다.
CloudFront 배포가 끝나고 나면, 원본 도메인에 Aplify의 도메인을 직접 등록해줍니다.
도메인 배포가 끝나고 다면 원본 유형이 Custom Origin으로 설정되어 있는 모습을 확인 할 수 있습니다.
새로 생성된 CloudFront로 접속하면, 따란 ~ Amplify로 배포했었던 App이 나옵니다 !
4. WAF 확인
WAF 설정시 새로 생성된 CloudFront를 선택 하는 것 또한 가능합니다.!!
오늘은 준비한 내용은 여기까지입니다 !다들 도움 되셨길 바라요 !
[참고문헌]
댓글