API Gateway 앞에 WAF 설정

개요



API Gateway를 사용할 때 손이 닿지 않는 어려운 곳이 많이 있습니다 (HTTPS 만 밖에 받아들이지 않거나 전단에 WAF 둘 수 없다든가). 이 중 WAF를 설정한다고 하는 부분에 이번은 임했을 때의 Tips를 남겨 둡니다.
  • API Gateway + CloudFront + AWS WAF (+ S3)
  • AWS WAF의 IP Match Condition만 사용

  • 전제



    이전에 게시한,
    CloudFront에 여러 오리진(API Gateway 오리진 및 S3 오리진) 설정 와 같이, 아래와 같은 환경이 구축되고 있는 전제로 합니다. 덧붙여 이번은 APIGateway의 전단에 두는 것이 메인이므로 S3는 옵션입니다.



    아키텍처 구성



    AWS WAF가 들어가면 다음과 같은 구성이 됩니다.



    AWS WAF 개요



    자세한 것은 공식 문서나 블로그등에서 많은 분이 소개해 주시고 있으므로 그쪽을 참조해 주세요.
  • AWS WAF and AWS Shield Documentation(영어)
  • Blackbelt seminar(AWS WAF)
  • [새로운 기능] AWS WAF 개요 간략한 요약! (reinvent2015)

  • AWS WAF 설정



    이번에는 IP Match Condition을 설정합니다. 아래의 순서로 컴퍼넌트를 구축해 갑니다.
  • IPSets 만들기
  • 규칙 만들기
  • WebACL 만들기

  • IPSets 만들기



    매우 간단합니다. CIDR 형식으로 IP를 등록하여 IP 주소 집합을 만드십시오.







    규칙 만들기



    CloudFront -> APIGateway로 라우팅되기 때문에 CloudFront를 지정합니다.







    WebACL 작성



    만든 IPSets, Rules를 WebACL로 설정합니다.











    결과



  • IPSets로 설정한 IP에서 문제없이 액세스할 수 있습니다.
  • API Gateway는 단순히 Success로 반환할 수 있는 Mock 엔드포인트를 제공하고 prod 스테이지에 배포했습니다.
  • 리소스 이름: success

  • 브라우저에서 동작 확인
  • 주소 표시 줄에 다음을 입력하여 실행

  • h tps : // 홉 x. 코 m / 스윕 s



  • IPSets 외부의 브라우저에서 액세스해 봅니다.
  • 액세스 차단되었습니다!



  • 요약


  • APIGateway의 전단에 WAF를 두는 구성을 구축했습니다.
  • IP Match Condition 이외에 SQL 인젝션이나 XSS 등 그 밖에도 설정이 많이 있습니다. IP Match Condition만으로 말하면 매우 심플하게 만들 수 있습니다.
  • 좋은 웹페이지 즐겨찾기