기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS WAF에서 전달된 IP 주소 사용
이 섹션은 웹 요청의 IP 주소를 사용하는 규칙 설명에 적용됩니다. 기본적으로 AWS WAF는 웹 요청 오리진의 IP 주소를 사용합니다. 웹 요청이 하나 이상의 프록시 또는 로드 밸런서를 통과할 경우 웹 요청 오리진에는 클라이언트의 최초 주소가 아닌 마지막 프록시의 주소가 포함됩니다. 이 경우 발신 클라이언트 주소는 일반적으로 다른 HTTP 헤더를 통해 전달됩니다. 이 헤더는 일반적으로 X-Forwarded-For
(XFF)지만 다른 헤더일 수도 있습니다.
IP 주소를 사용하는 규칙 문
IP 주소를 사용하는 규칙 문은 다음과 같습니다.
-
IP 집합 일치 - IP 주소가 IP 집합에 정의된 주소와 일치하는지 검사합니다.
-
지리적 일치- IP 주소를 사용하여 오리진 국가 및 리전을 결정하고 오리진 국가를 국가 목록과 비교합니다.
-
속도 기반 규칙 문 사용 - 개별 IP 주소가 너무 높은 속도로 요청을 보내지 않도록 IP 주소별로 요청을 집계할 수 있습니다. IP 주소 집계를 단독으로 사용하거나 다른 집계 키와 함께 사용할 수 있습니다.
AWS WAF에 이러한 규칙 문 중 하나에 대해 웹 요청의 오리진을 사용하는 대신에 X-Forwarded-For
헤더 또는 다른 HTTP 헤더를 통해 전달된 IP 주소를 사용하도록 지정할 수 있습니다. 사양을 제공하는 방법에 대한 자세한 내용은 개별 규칙 문 유형에 대한 지침을 참조하세요.
참고
지정된 헤더가 요청에 없으면 AWS WAF는 웹 요청에 규칙을 전혀 적용하지 않습니다.
폴백 동작
전달된 IP 주소를 사용할 경우 요청의 지정된 위치에 유효한 IP 주소가 으면 웹 요청에 할당할 AWS WAF의 일치 상태를 나타냅니다.
-
일치 - 웹 요청을 규칙 문과 일치하는 것으로 처리합니다. AWS WAF는 규칙 동작을 요청에 적용합니다.
-
일치하지 않음 - 웹 요청을 규칙 문과 일치하지 않는 것으로 처리합니다.
AWS WAF Bot Control에 사용되는 IP 주소
Bot Control 관리형 규칙 그룹은 AWS WAF의 IP 주소를 사용하여 봇을 확인합니다. Bot Control을 사용하고 프록시나 로드 밸런서를 통해 라우팅되는 봇을 확인한 경우 사용자 지정 규칙을 사용하여 봇을 명시적으로 허용해야 합니다. 예를 들어, 전달된 IP 주소를 사용하여 확인된 봇을 탐지하고 허용하는 사용자 지정 IP 집합 일치 규칙을 구성할 수 있습니다. 규칙을 사용하여 다양한 방식으로 봇 관리를 사용자 지정할 수 있습니다. 자세한 내용 및 예제는 AWS WAF 봇 제어 섹션을 참조하세요.
전달된 IP 주소 사용에 대한 일반 고려 사항
전달된 IP 주소를 사용하기 전에 다음과 같은 일반적인 주의 사항을 참고하십시오.
-
헤더는 과정 중에 프록시를 통해 수정될 수 있으며, 프록시는 다양한 방식으로 헤더를 처리할 수 있습니다.
-
공격자가 AWS WAF 검사를 우회하기 위해 헤더의 내용을 변경할 수 있습니다.
-
헤더 내 IP 주소는 형식이 잘못되었거나 유효하지 않을 수 있습니다.
-
지정한 헤더가 요청에 전혀 없을 수도 있습니다.
AWS WAF를 통해 전달된 IP 주소 사용에 대한 일반 고려 사항
다음 목록은 AWS WAF에서 전달된 IP 주소 사용 시 요구 사항 및 주의 사항을 설명합니다.
-
단일 규칙의 경우 전달된 IP 주소에 헤더 하나를 지정할 수 있습니다. 헤더 사양은 대/소문자를 구분하지 않습니다.
-
속도 기반 규칙 문의 경우 중첩된 범위 지정 문이 전달된 IP 구성을 상속하지 않습니다. 전달된 IP 주소를 사용하는 각 명령문의 구성을 지정하십시오.
-
지역 일치 및 속도 기반 규칙의 경우 헤더의 첫 번째 주소를 AWS WAF 사용합니다. 예를 들어, 헤더에
10.1.1.1, 127.0.0.0, 10.10.10.10
이 포함되는 경우 AWS WAF는10.1.1.1
을 사용합니다. -
IP 집합 일치의 경우, 헤더의 첫 번째 주소, 마지막 주소 또는 임의 주소와 일치시킬지 여부를 지정합니다. 모두를 지정하면 AWS WAF는 일치하는 주소(최대 10개)가 있는지 헤더의 모든 주소를 검사합니다. 헤더에 10개가 넘는 IP 주소가 포함된 경우 AWS WAF는 마지막 10개를 검사합니다.
-
주소가 여러 개 포함된 헤더는 주소 사이에 쉼표 구분 기호를 사용해야 합니다. 요청에 쉼표 이외의 구분자를 사용하는 경우 AWS WAF는 헤더의 IP 주소 형식을 잘못된 것으로 간주합니다.
-
헤더 내의 IP 주소 형식이 잘못되었거나 유효하지 않은 경우 AWS WAF는 사용자가 전달된 IP 구성에 지정하는 폴백 동작에 따라 웹 요청을 규칙과 일치하거나 일치하지 않는 것으로 지정합니다.
-
지정된 헤더가 요청에 없으면 AWS WAF는 요청에 규칙을 전혀 적용하지 않습니다. 즉, AWS WAF에서 규칙 작업 및 폴백 동작을 적용하지 않습니다.
-
IP 주소에 대해 전달된 IP 헤더를 사용하는 규칙 문은 웹 요청 오리진에서 보고하는 IP 주소를 사용하지 않습니다.
AWS WAF에서 전달된 IP 주소 사용에 대한 모범 사례
전달된 IP 주소를 사용하는 경우 다음 모범 사례를 따르십시오.
-
전달된 IP 구성을 활성화하기 전에 요청 헤더의 가능한 모든 상태를 신중하게 고려하십시오. 원하는 동작을 얻기 위해 둘 이상의 규칙을 사용해야 할 수도 있습니다.
-
여러 개의 전달된 IP 헤더를 검사하거나 웹 요청 오리진 및 전달된 IP 헤더를 검사하려면 각 IP 주소 소스에 대해 하나의 규칙을 사용하십시오.
-
유효하지 않은 헤더를 포함하는 웹 요청을 차단하려면 규칙 작업을 차단으로 설정하고 전달된 IP 구성의 폴백 동작을 일치시키도록 설정하십시오.
전달된 IP 주소에 대한 JSON 예제
다음 지역 일치문은 오리진 국가가 US
인 IP만 X-Forwarded-For
헤더에 포함되는 경우에 일치합니다.
{ "Name": "XFFTestGeo", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "XFFTestGeo" }, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } } }
다음 속도 기반 규칙은 X-Forwarded-For
헤더의 첫 번째 IP를 기준으로 요청을 집계합니다. 규칙은 중첩된 지역 일치 문과 일치하는 요청 수만 계산하고 리전 일치 문과 일치하는 요청만 차단합니다. 또한 중첩된 지역 일치문은 X-Forwarded-For
헤더를 사용하여 IP 주소에 오리진 국가로 US
가 표시되는지 여부를 결정합니다. 이 경우 또는 헤더가 있지만 형식이 잘못된 경우 지역 일치 문에서 일치하는 항목을 반환합니다.
{ "Name": "XFFTestRateGeo", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "XFFTestRateGeo" }, "Statement": { "RateBasedStatement": { "Limit": "100", "AggregateKeyType": "FORWARDED_IP", "ScopeDownStatement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } }, "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } } }