API Gateway의 WAF 보호 설정 점검

REST API 스테이지에 필요한 웹 요청 필터링을 적용하고 정상 요청에 미치는 영향을 확인하세요.

설명

AWS WAF를 연결하지 않은 API Gateway REST API 스테이지에는 WAF 웹 ACL의 요청 검사와 차단이 적용되지 않습니다. 웹 요청의 악용을 줄이는 통제가 필요하다면 API의 용도와 기존 보호에 맞는 WAF 구성을 검토해야 합니다.

WAF는 규칙에 따라 요청을 처리하며 호출자 인증, 애플리케이션 권한 검사나 취약점 수정을 대신하지 않습니다. 웹 ACL을 연결하는 것만으로 모든 공격이 차단되는 것은 아닙니다.

잠재적 영향

  • 필요한 요청 필터링이 없으면 악성 입력이나 반복 요청이 애플리케이션에 도달할 수 있습니다.
  • 부적절한 차단 규칙은 정상 고객의 요청을 거부할 수 있습니다.

해결 방법

보호가 필요한 REST API 스테이지에 같은 리전의 REGIONAL 웹 ACL을 연결하세요. API 동작에 맞는 관리형·사용자 지정 규칙을 선택하고 먼저 Count 동작 등으로 영향을 확인한 뒤 필요한 차단을 적용하세요. 실제 연결 대상, 요청 기록과 정상 트래픽을 확인하고 인증과 애플리케이션 보안도 유지하세요.

예시

REST API와 배포, 웹 ACL은 별도 입력입니다. ApiWebAclArn에는 같은 리전의 REGIONAL 웹 ACL ARN을 제공하세요. 규칙 정의와 로그 구성은 생략했습니다.

변경 전

yaml
Resources:
  ProdStage:
    Type: AWS::ApiGateway::Stage
    Properties:
      StageName: Prod
      RestApiId: !Ref MyRestApi
      DeploymentId: !Ref ApiDeployment

이 발췌에는 스테이지와 웹 ACL의 연결이 없습니다. 별도로 적용 중인 보호와 실제 연결 상태를 확인하세요.

변경 후

yaml
Resources:
  ProdStage:
    Type: AWS::ApiGateway::Stage
    Properties:
      StageName: Prod
      RestApiId: !Ref MyRestApi
      DeploymentId: !Ref ApiDeployment

  ProdStageWebAclAssociation:
    Type: AWS::WAFv2::WebACLAssociation
    Properties:
      WebACLArn: !Ref ApiWebAclArn
      ResourceArn: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}::/restapis/${MyRestApi}/stages/${ProdStage}

현재 리전의 MyRestApi와 ProdStage를 참조해 웹 ACL을 연결합니다. 웹 ACL의 규칙과 동작을 구성하고 정상·악성 요청에 대한 결과를 확인하세요.

참조