

AWS App Runner 는 2026년 4월 30일부터 신규 고객에게 더 이상 공개되지 않습니다. App Runner를 사용하려면 해당 날짜 이전에 가입하세요. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [AWS App Runner 가용성 변경](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)을 참조하세요.

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

# AWS WAF 웹 ACLs 관리
<a name="waf-manage"></a>

다음 방법 중 하나를 사용하여 App Runner 서비스의 AWS WAF 웹 ACLs을 관리합니다.
+ [App Runner 콘솔](#waf-manage.console)
+ [AWS CLI](#waf-manage.api)

## App Runner 콘솔
<a name="waf-manage.console"></a>

App Runner 콘솔에서 [서비스를 생성](manage-create.md)하거나 [기존 서비스를 업데이트할](manage-configure.md) 때 AWS WAF 웹 ACL을 연결하거나 연결 해제할 수 있습니다.

**참고**  
App Runner 서비스는 하나의 웹 ACL에만 연결할 수 있습니다. 그러나 다른 AWS 리소스 외에도 웹 ACL 하나를 둘 이상의 App Runner 서비스와 연결할 수 있습니다.
웹 ACL을 연결하기 전에에 대한 IAM 권한을 업데이트해야 합니다 AWS WAF. 자세한 내용은 [ Permissions](waf.md#waf.permissions) 단원을 참조하십시오.

### AWS WAF 웹 ACL 연결
<a name="waf-manage.console.add"></a>

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

**AWS WAF 웹 ACL을 연결하려면**

1. [App Runner 콘솔](https://console.aws.amazon.com/apprunner)을 열고 **리전** 목록에서를 선택합니다 AWS 리전.

1. 서비스를 생성 또는 업데이트하는지 여부에 따라 다음 단계 중 하나를 수행합니다.
   + 새 서비스를 생성하는 경우 **App Runner 서비스 생성을** 선택하고 **서비스 구성**으로 이동합니다.
   + 기존 서비스를 업데이트하는 경우 **구성** 탭을 선택한 다음 **서비스 구성**에서 **편집**을 선택합니다.

1. **보안** 아래의 **웹 애플리케이션 방화벽**으로 이동합니다.

1. 옵션을 보려면 전환 **활성화** 버튼을 선택합니다.  
![\[웹 애플리케이션 방화벽 옵션을 보여주는 App Runner 콘솔 레이아웃입니다.\]](http://docs.aws.amazon.com/ko_kr/apprunner/latest/dg/images/console-waf.png)

1. 다음 단계 중 하나를 수행하세요.
   + **기존 웹 ACL을 연결하려면**: App Runner 서비스와 연결할 웹 ACL 선택 테이블에서 필요한 **웹 ACL**을 선택합니다.
   + **새 웹 ACL을 생성하려면**: AWS WAF 콘솔을 사용하여 새 **웹 ACL을 생성**하려면 웹 ACL 생성을 선택합니다. 자세한 내용은 *AWS WAF 개발자 안내서*의 [웹 ACL 생성을](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-creating.html) 참조하세요.

     1. 새로 고침 버튼을 선택하여 웹 ACL 선택 테이블에서 새로 생성된 **웹 ACL을** 봅니다.

     1. 필요한 웹 ACL을 선택합니다.

1. 새 서비스를 생성하는 경우 **다음을** 선택하고 기존 서비스를 업데이트하는 경우 **변경 사항 저장**을 선택합니다. 선택한 웹 ACL은 App Runner 서비스와 연결됩니다.

1. 웹 ACL 연결을 확인하려면 서비스의 **구성** 탭을 선택하고 **서비스 구성**으로 이동합니다. **보안** 아래의 **웹 애플리케이션 방화벽**으로 스크롤하여 서비스와 연결된 웹 ACL의 세부 정보를 확인합니다.
**참고**  
웹 ACL을 생성하면 웹 ACL이 완전히 전파되기 전에 약간의 시간이 경과하여 App Runner에서 사용할 수 있습니다. 전파 시간은 몇 초에서 몇 분 사이일 수 있습니다.는 웹 ACL이 완전히 전파되기 전에 연결을 시도할 `WAFUnavailableEntityException` 때를 AWS WAF 반환합니다.  
웹 ACL이 완전히 전파되기 전에 브라우저를 새로 고치거나 App Runner 콘솔에서 벗어나면 연결이 실패합니다. 그러나 App Runner 콘솔 내에서 탐색할 수 있습니다.

### AWS WAF 웹 ACL 연결 해제
<a name="waf-manage.console.disassociate"></a>

App Runner 서비스를 [업데이트](manage-configure.md)하여 더 이상 필요하지 않은 AWS WAF 웹 ACl의 연결을 해제할 수 있습니다.

**AWS WAF 웹 ACl의 연결을 해제하려면**

1. [App Runner 콘솔](https://console.aws.amazon.com/apprunner)을 열고 **리전** 목록에서를 선택합니다 AWS 리전.

1. 업데이트하려는 서비스의 **구성** 탭으로 이동하여 **구성 서비스**에서 **편집**을 선택합니다.

1. **보안** 아래의 **웹 애플리케이션 방화벽**으로 이동합니다.

1. 전환 **활성화** 버튼을 비활성화합니다. 삭제를 확인하는 메시지가 표시됩니다.

1. **확인**을 선택합니다. 웹 ACL이 App Runner 서비스와 연결 해제되었습니다.
**참고**  
서비스를 다른 웹 ACL과 연결하려면 웹 ACL 선택 테이블에서 **웹 ACL을 선택합니다**. App Runner는 현재 웹 ACL의 연결을 해제하고 선택한 웹 ACL과 연결하는 프로세스를 시작합니다.
연결 해제된 웹 ACL을 사용하는 다른 App Runner 서비스 또는 리소스가 없는 경우 웹 ACL을 삭제하는 것이 좋습니다. 그렇지 않으면 비용이 계속 발생합니다. 요금에 대한 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing)을 참조하십시오. 웹 ACL을 삭제하는 방법에 대한 지침은 *AWS WAF API 참조*의 [DeleteWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_DeleteWebACL.html)을 참조하세요.
다른 활성 App Runner 서비스 또는 다른 리소스와 연결된 웹 ACL은 삭제할 수 없습니다.

## AWS CLI
<a name="waf-manage.api"></a>

 AWS WAF 퍼블릭 API를 사용하여 AWS WAF 웹 ACL을 연결하거나 연결 해제할 수 있습니다. APIs 웹 ACL을 연결하거나 연결 해제하려는 App Runner 서비스는 유효한 상태여야 합니다.

AWS WAF 는 잘못된 상태인 App Runner 서비스에 대해 다음 API 중 하나를 호출할 때 `WAFNonexistentItemException` 오류를 반환합니다. AWS WAF APIs 
+  `AssociateWebACL` 
+  `DisassociateWebACL` 
+  `GetWebACLForResource` 

App Runner 서비스의 잘못된 상태는 다음과 같습니다.
+  `CREATE_FAILED` 
+  `DELETE_FAILED` 
+  `DELETED` 
+  `OPERATION_IN_PROGRESS ` 
**참고**  
`OPERATION_IN_PROGRESS` 상태는 App Runner 서비스가 삭제되는 경우에만 유효하지 않습니다.

 AWS WAF 퍼블릭 APIs. [https://docs.aws.amazon.com/waf/latest/APIReference/Welcome.html](https://docs.aws.amazon.com/waf/latest/APIReference/Welcome.html) 

**참고**  
에 대한 IAM 권한을 업데이트합니다 AWS WAF. 자세한 내용은 [ Permissions](waf.md#waf.permissions) 단원을 참조하십시오.

### 를 사용하여 AWS WAF 웹 ACL 연결 AWS CLI
<a name="waf-manage.api.add"></a>

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

**AWS WAF 웹 ACL을 연결하려면**

1. 에 대한 기본 규칙 작업 세트 `Allow` 또는 서비스에 대한 AWS WAF 웹 요청을 사용하여 서비스에 대한 `Block` 웹 ACL을 생성합니다. AWS WAF APIs에 대한 자세한 내용은 *AWS WAF API 참조 안내서*의 [CreateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateWebACL.html)을 참조하세요.  
**Example 웹 ACL 생성 - 요청**  

   ```
   aws wafv2
   create-web-acl
   --region <region>
   --name <web-acl-name>
   --scope REGIONAL
   --default-action Allow={}
   --visibility-config <file-name.json>
   # This is the file containing the WAF web ACL rules.
   ```

1. `associate-web-acl` AWS WAF 퍼블릭 API를 사용하여 생성한 웹 ACL을 App Runner 서비스와 연결합니다. AWS WAF APIs에 대한 자세한 내용은 *AWS WAF API 참조 안내서*의 [AssociateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_AssociateWebACL.html)을 참조하세요.
**참고**  
웹 ACL을 생성하면 웹 ACL이 완전히 전파되기 전에 약간의 시간이 경과하여 App Runner에서 사용할 수 있습니다. 전파 시간은 몇 초에서 몇 분 사이일 수 있습니다.는 웹 ACL이 완전히 전파되기 전에 연결을 시도할 `WAFUnavailableEntityException` 때를 AWS WAF 반환합니다.  
웹 ACL이 완전히 전파되기 전에 브라우저를 새로 고치거나 App Runner 콘솔에서 벗어나면 연결이 실패합니다. 그러나 App Runner 콘솔 내에서 탐색할 수 있습니다.  
**Example 웹 ACL 연결 - 요청**  

   ```
   aws wafv2 associate-web-acl
   --resource-arn <apprunner_service_arn>
   --web-acl-arn <web_acl_arn>
   --region <region>
   ```

1. `get-web-acl-for-resource` AWS WAF 퍼블릭 API를 사용하여 웹 ACL이 App Runner 서비스와 연결되어 있는지 확인합니다. AWS WAF APIs에 대한 자세한 내용은 *AWS WAF API 참조 안내서*의 [GetWebACLForResource](https://docs.aws.amazon.com/waf/latest/APIReference/API_GetWebACLForResource.html)를 참조하세요.  
**Example 리소스에 대한 웹 ACL 확인 - 요청**  

   ```
   aws wafv2 get-web-acl-for-resource
   --resource-arn <apprunner_service_arn>
   --region <region>
   ```

   서비스와 연결된 웹 ACLs이 없는 경우 빈 응답을 받게 됩니다.

### 를 사용하여 AWS WAF 웹 ACL 삭제 AWS CLI
<a name="waf-manage.api.disassociate"></a>

 AWS WAF 웹 ACL이 App Runner 서비스와 연결된 경우 삭제할 수 없습니다.

**AWS WAF 웹 ACL을 삭제하려면**

1. `disassociate-web-acl` AWS WAF 퍼블릭 API를 사용하여 App Runner 서비스에서 웹 ACL의 연결을 해제합니다. AWS WAF APIs에 대한 자세한 내용은 *AWS WAF API 참조 안내서*의 [DisassociateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_DisassociateWebACL.html)을 참조하세요.  
**Example 웹 ACL 연결 해제 - 요청**  

   ```
   aws wafv2 disassociate-web-acl
   --resource-arn <apprunner_service_arn>
   --region <region>
   ```

1. `get-web-acl-for-resource` AWS WAF 퍼블릭 API를 사용하여 웹 ACL이 App Runner 서비스에서 연결 해제되었는지 확인합니다.  
**Example 웹 ACL의 연결이 해제되었는지 확인 - 요청**  

   ```
   aws wafv2 get-web-acl-for-resource
   --resource-arn <apprunner_service_arn>
   --region <region>
   ```

   연결 해제된 웹 ACL은 App Runner 서비스에 대해 나열되지 않습니다. 서비스와 연결된 웹 ACLs이 없는 경우 빈 응답을 받게 됩니다.

1. `delete-web-acl` AWS WAF 퍼블릭 API를 사용하여 연결 해제된 웹 ACL을 삭제합니다. AWS WAF APIs에 대한 자세한 내용은 *AWS WAF API 참조 안내서*의 [DeleteWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_DeleteWebACL.html)을 참조하세요.  
**Example 웹 ACL 삭제 - 요청**  

   ```
   aws wafv2 delete-web-acl
   --name <web_acl_name>
   --scope REGIONAL
   --id <web_acl_id>
   --lock-token <web_acl_lock_token>
   --region <region>
   ```

1. `list-web-acl` AWS WAF 퍼블릭 API를 사용하여 웹 ACL이 삭제되었는지 확인합니다. AWS WAF APIs 대한 자세한 내용은 *AWS WAF API 참조 안내서*의 [ListWebACLs](https://docs.aws.amazon.com/waf/latest/APIReference/API_ListWebACLs.html)를 참조하세요.  
**Example 웹 ACL이 삭제되었는지 확인 - 요청**  

   ```
   aws wafv2 list-web-acls 
   --scope REGIONAL
   --region <region>
   ```

   삭제된 웹 ACL은 더 이상 나열되지 않습니다.
**참고**  
웹 ACL이 다른 활성 App Runner 서비스 또는 Amazon Cognito 사용자 풀과 같은 다른 리소스와 연결된 경우 웹 ACL을 삭제할 수 없습니다.

### 웹 ACL과 연결된 App Runner 서비스 나열
<a name="waf-manage.api.list"></a>

웹 ACL은 여러 App Runner 서비스 및 기타 리소스와 연결할 수 있습니다. `list-resources-for-web-acl` AWS WAF 퍼블릭 API를 사용하여 웹 ACL과 연결된 App Runner 서비스를 나열합니다. AWS WAF APIs 대한 자세한 내용은 *AWS WAF API 참조 안내서*의 [ListResourcesForWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_ListResourcesForWebACL.html)을 참조하세요.

**Example 웹 ACL과 연결된 App Runner 서비스 나열 - 요청**  

```
aws wafv2 list-resources-for-web-acl
--web-acl-arn <WEB_ACL_ARN>
--resource-type APP_RUNNER_SERVICE
--region <REGION>
```

**Example 웹 ACL과 연결된 App Runner 서비스 나열 - 응답**  
다음 예제에서는 웹 ACL과 연결된 App Runner 서비스가 없는 경우의 응답을 보여줍니다.  

```
{
  "ResourceArns": []
}
```

**Example 웹 ACL과 연결된 App Runner 서비스 나열 - 응답**  
다음 예제에서는 웹 ACL과 연결된 App Runner 서비스가 있는 경우의 응답을 보여줍니다.  

```
{
  "ResourceArns": [
    "arn:aws:apprunner:<region>:<aws_account_id>:service/<service_name>/<service_id>"
  ]
}
```

## AWS WAF 웹 ACLs 테스트 및 로깅
<a name="waf-manage.testing-and-logging"></a>

웹 ACL에서 규칙 작업을 **개수**로 설정하면가 규칙과 일치하는 요청 수에 요청을 AWS WAF 추가합니다. App Runner 서비스를 사용하여 웹 ACL을 테스트하려면 규칙 작업을 **개수**로 설정하고 각 규칙과 일치하는 요청 볼륨을 고려합니다. 예를 들어, 정상적인 사용자 트래픽으로 판단되는 많은 수의 요청과 일치하는 `Block` 작업에 대한 규칙을 설정합니다. 이 경우 규칙을 재구성해야 할 수 있습니다. 자세한 내용은 *AWS WAF 개발자 안내서*[의 AWS WAF 보호 기능 테스트 및 튜닝을 참조하세요](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-testing.html).

요청 헤더를 Amazon CloudWatch Logs 로그 그룹, Amazon Simple Storage Service(Amazon S3) 버킷 또는 Amazon Data Firehose에 로깅 AWS WAF 하도록를 구성할 수도 있습니다. 자세한 내용은 *AWS WAF 개발자 안내서*의 [웹 ACL 트래픽 로깅](https://docs.aws.amazon.com/waf/latest/developerguide/logging.html)을 참조하세요.

App Runner 서비스와 연결된 웹 ACL과 관련된 로그에 액세스하려면 다음 로그 필드를 참조하세요.
+ `httpSourceName`: 포함 `APPRUNNER` 
+ `httpSourceId`: 포함 `customeraccountid-apprunnerserviceid`

자세한 내용은 *AWS WAF 개발자 안내서*의 [로그 예제](https://docs.aws.amazon.com/waf/latest/developerguide/logging-examples.html)를 참조하세요.

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