AWS WAF를 사용하여 Application Load Balancer에 대한 직접 액세스를 제한하려고 합니다. 또한 AWS WAF를 사용하여 Amazon API Gateway를 통한 직접 액세스만 허용하려고 합니다.
해결 방법
AWS WAF를 사용하여 Application Load Balancer로 향하는 직접 트래픽을 제한하고 API Gateway를 통과하는 트래픽만 허용하려면 다음 단계를 따르십시오.
사용자 지정 HTTP 헤더 추가
API Gateway가 Application Load Balancer로 보내는 요청에 비밀 값이 있는 사용자 지정 HTTP 헤더를 추가하도록 구성합니다.
다음 단계를 완료합니다.
- API Gateway 콘솔을 엽니다.
- 탐색 창에서 API를 선택합니다.
- REST API를 선택합니다.
- 리소스에서 HTTP 메서드를 선택합니다. 예를 들어 GET을 선택합니다.
- 통합 요청 탭을 선택한 후 편집을 선택합니다.
- URL 요청 헤더 파라미터 섹션을 확장한 다음 요청 헤더 파라미터 추가를 선택합니다.
이름에서 헤더의 이름을 입력합니다. 예를 들어 custom-header를 입력합니다.
매핑 출처에 비밀 헤더 값을 입력합니다.
참고: 비밀 헤더 값은 작은따옴표로 묶어야 합니다. 예를 들면 'secret-value'와 같습니다.
- 저장을 선택합니다.
보호 팩 및 규칙 생성
Application Load Balancer와 연결된 빈 AWS WAF 보호 팩을 생성합니다. 그런 다음 비밀 값이 있는 사용자 지정 HTTP 헤더가 없는 요청을 차단하는 규칙을 생성합니다.
참고: Application Load Balancer에 연결된 기존 보호 팩이 이미 있는 경우 규칙 생성을 진행합니다.
보호 팩 생성
다음 단계를 완료합니다.
- AWS WAF 콘솔을 엽니다.
- 탐색 창에서 AWS WAF를 선택합니다.
- 리소스 및 보호 팩을 선택합니다.
- 보호 팩에서 보호 팩 생성을 선택합니다.
- 앱에 대한 정보 제공에서 앱 카테고리를 하나 이상 선택합니다.
- 앱 포커스를 선택합니다.
- 보호해야 할 리소스 선택에서 리소스 추가를 선택합니다.
- 리전별 리소스 추가를 선택합니다. 목록에서 Application Load Balancer를 선택합니다.
- 보호 팩 선택에서 AWS WAF가 제공하는 모든 보호 기능으로 직접 팩 제작을 선택합니다. 오른쪽 창은 무시합니다.
- 이름 및 설명에서 보호 팩의 이름을 입력합니다.
- 보호 팩 생성을 선택합니다.
규칙 생성
다음 단계를 완료합니다.
- AWS WAF 콘솔을 엽니다.
- 탐색 창에서 AWS WAF를 선택합니다.
- 리소스 및 보호 팩을 선택합니다.
- 보호 팩에서 연결된 보호 팩을 선택하고 규칙 옆에 있는 보기 및 편집을 선택합니다. 그러면 오른쪽 창이 열립니다.
- 오른쪽 창에서 규칙 추가를 선택합니다.
사용자 지정 규칙을 선택하고 다음을 선택합니다.
사용자 지정 규칙을 다시 선택하고 다음을 선택합니다.
- 규칙을 설정하려면 다음 값을 구성합니다.
**Action(작업)**에서 **Block(차단)**을 선택합니다.
규칙 이름에 규칙 이름을 입력합니다.
요청이 다음과 같은 경우에서 **문과 일치하지 않음(NOT)**을 선택합니다.
Inspect에서 Single Header를 선택합니다.
헤더 필드 이름에 사용자 지정 헤더 이름을 입력합니다. 예를 들어 custom-header를 입력합니다.
Match type에서 Exactly matches string을 선택합니다.
일치시킬 문자열에 비밀 헤더 값을 입력합니다.
참고: 비밀 헤더 값은 작은따옴표로 묶어야 합니다. 예를 들면 'secret-value'와 같습니다.
- 규칙 생성을 선택합니다.
- 보호 팩에 여러 규칙이 있는 경우 오른쪽 창에서 규칙 순서 편집을 선택합니다.
최근에 생성한 규칙을 맨 위에 배치하여 가장 높은 우선 순위를 부여합니다.
- 규칙 순서 저장을 선택합니다.
관련 정보
API Gateway REST API를 Application Load Balancer로 어떻게 통합합니까?