AWS WAF 웹 ACL을 서비스와 연결 - AWS App Runner

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS WAF 웹 ACL을 서비스와 연결

AWS WAF App Runner 서비스를 보호하는 데 사용할 수 있는 웹 애플리케이션 방화벽입니다. AWS WAF 웹 ACL (액세스 제어 목록) 을 사용하면 일반적인 웹 악용 및 원치 않는 봇으로부터 App Runner 서비스 엔드포인트를 보호할 수 있습니다.

웹 ACL을 사용하면 App Runner 서비스로 들어오는 모든 웹 요청을 세밀하게 제어할 수 있습니다. 웹 ACL에서 규칙을 정의하여 웹 트래픽을 허용, 차단 또는 모니터링하여 승인되고 합법적인 요청만 웹 애플리케이션 및 API에 도달하도록 할 수 있습니다. 특정 비즈니스 및 보안 요구 사항에 따라 웹 ACL 규칙을 사용자 지정할 수 있습니다. 인프라 보안 및 네트워크 ACL 적용 모범 사례에 대해 자세히 알아보려면 Amazon VPC 사용 설명서의 네트워크 트래픽 제어를 참조하십시오.

중요

WAF 웹 ACL과 연결된 App Runner 프라이빗 서비스의 소스 IP 규칙은 IP 기반 규칙을 준수하지 않습니다. 이는 현재 요청 소스 IP 데이터를 WAF와 관련된 App Runner 프라이빗 서비스에 전달하는 것을 지원하지 않기 때문입니다. App Runner 애플리케이션에 소스 IP/CIDR 수신 트래픽 제어 규칙이 필요한 경우 WAF 웹 ACL 대신 프라이빗 엔드포인트에 대한 보안 그룹 규칙을 사용해야 합니다.

수신 웹 요청 흐름

AWS WAF 웹 ACL이 App Runner 서비스와 연결된 경우 들어오는 웹 요청은 다음 프로세스를 거칩니다.

  1. App Runner는 원본 요청의 콘텐츠를 에 전달합니다. AWS WAF

  2. AWS WAF 요청을 검사하고 해당 콘텐츠를 웹 ACL에서 지정한 규칙과 비교합니다.

  3. 검사에 따라 App AWS WAF Runner에 allow or block 응답을 반환합니다.

    • allow응답이 반환되면 App Runner는 요청을 애플리케이션에 전달합니다.

    • block응답이 반환되면 App Runner는 요청이 웹 애플리케이션에 도달하지 못하도록 차단합니다. 의 block 응답을 AWS WAF 애플리케이션에 전달합니다.

      참고

      기본적으로 App Runner는 응답이 반환되지 않으면 요청을 차단합니다. AWS WAF

AWS WAF 웹 ACL에 대한 자세한 내용은 개발자 안내서의 웹 액세스 제어 목록 (웹 ACL) 을 참조하십시오.AWS WAF

참고

표준 AWS WAF 가격을 지불합니다. App Runner 서비스에 AWS WAF 웹 ACL을 사용하는 데에는 추가 비용이 발생하지 않습니다. 요금에 대한 자세한 내용은 요금을 참조하십시오.AWS WAF

WAF 웹 ACL을 앱 러너 서비스에 연결

다음은 AWS WAF 웹 ACL을 App Runner 서비스에 연결하는 고급 프로세스입니다.

  1. 콘솔에서 웹 ACL을 생성합니다. AWS WAF 자세한 내용은 AWS WAF 개발자 안내서의 웹 ACL 생성을 참조하십시오.

  2. 에 대한 AWS Identity and Access Management (IAM) 권한을 업데이트하십시오. AWS WAF자세한 내용은 Permissions 단원을 참조하십시오.

  3. 다음 방법 중 하나를 사용하여 웹 ACL을 App Runner 서비스에 연결합니다.

고려 사항

  • WAF 웹 ACL과 연결된 앱 러너 프라이빗 서비스의 소스 IP 규칙은 IP 기반 규칙을 준수하지 않습니다. 이는 현재 요청 소스 IP 데이터를 WAF와 관련된 App Runner 프라이빗 서비스에 전달하는 것을 지원하지 않기 때문입니다. App Runner 애플리케이션에 소스 IP/CIDR 수신 트래픽 제어 규칙이 필요한 경우 WAF 웹 ACL 대신 프라이빗 엔드포인트에 대한 보안 그룹 규칙을 사용해야 합니다.

  • App Runner 서비스는 하나의 웹 ACL에만 연결할 수 있습니다. 하지만 하나의 웹 ACL을 여러 App Runner 서비스 및 여러 리소스와 연결할 수 있습니다. AWS Amazon Cognito 사용자 풀과 애플리케이션 로드 밸런서 리소스를 예로 들 수 있습니다.

  • 웹 ACL을 생성하면 웹 ACL이 완전히 전파되어 App Runner에서 사용할 수 있게 되기까지 약간의 시간이 소요됩니다. 전파 시간은 몇 초에서 몇 분까지 걸릴 수 있습니다. AWS WAF 완전히 전파되기 전에 웹 ACL을 연결하려고 WAFUnavailableEntityException 하면 a를 반환합니다.

    웹 ACL이 완전히 전파되기 전에 브라우저를 새로 고치거나 App Runner 콘솔에서 다른 곳으로 이동하면 연결이 발생하지 않습니다. 하지만 App Runner 콘솔 내에서는 탐색할 수 있습니다.

  • AWS WAF 유효하지 않은 상태인 App Runner 서비스에 대해 다음 AWS WAF API 중 하나를 호출하면 WAFNonexistentItemException 오류가 반환됩니다.

    • AssociateWebACL

    • DisassociateWebACL

    • GetWebACLForResource

    App Runner 서비스의 잘못된 상태는 다음과 같습니다.

    • CREATE_FAILED

    • DELETE_FAILED

    • DELETED

    • OPERATION_IN_PROGRESS

      참고

      OPERATION_IN_PROGRESS상태는 App Runner 서비스가 삭제되는 경우에만 유효하지 않습니다.

  • 요청으로 인해 페이로드가 검사할 수 있는 한도보다 클 AWS WAF 수 있습니다. App Runner의 크기 초과 요청을 AWS WAF 처리하는 방법에 대한 자세한 내용은 AWS WAF 개발자 안내서의 크기 초과 요청 구성 요소 처리를 참조하여 App Runner의 크기 초과 요청을 AWS WAF 처리하는 방법을 알아보세요.

  • 적절한 규칙을 설정하지 않거나 트래픽 패턴이 변경되면 웹 ACL이 애플리케이션 보안에 그다지 효과적이지 않을 수 있습니다.

권한

에서 AWS App Runner웹 ACL을 사용하려면 다음 IAM 권한을 추가하십시오. AWS WAF

  • apprunner:ListAssociatedServicesForWebAcl

  • apprunner:DescribeWebAclForService

  • apprunner:AssociateWebAcl

  • apprunner:DisassociateWebAcl

IAM 권한에 대한 자세한 내용은 IAM 사용 설명서의 IAM의 정책 및 권한을 참조하십시오.

다음은 에 대한 업데이트된 IAM 정책의 예입니다. AWS WAF이 IAM 정책에는 App Runner 서비스를 사용하는 데 필요한 권한이 포함되어 있습니다.

{ { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "wafv2:ListResourcesForWebACL", "wafv2:GetWebACLForResource", "wafv2:AssociateWebACL", "wafv2:DisassociateWebACL", "apprunner:ListAssociatedServicesForWebAcl", "apprunner:DescribeWebAclForService", "apprunner:AssociateWebAcl", "apprunner:DisassociateWebAcl" ], "Resource":"*" } ] }
참고

IAM 권한을 부여해야 하지만 나열된 작업은 권한 전용이며 API 작업에 해당하지 않습니다.