전달된 IP 주소 - AWS WAF, AWS Firewall Manager, 및 AWS Shield Advanced

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

전달된 IP 주소

이 섹션은 웹 요청의 IP 주소를 사용하는 규칙 설명에 적용됩니다. 기본적으로 웹 요청 출처의 IP 주소를 AWS WAF 사용합니다. 웹 요청이 하나 이상의 프록시 또는 로드 밸런서를 통과할 경우 웹 요청 오리진에는 클라이언트의 최초 주소가 아닌 마지막 프록시의 주소가 포함됩니다. 이 경우 발신 클라이언트 주소는 일반적으로 다른 HTTP 헤더를 통해 전달됩니다. 이 헤더는 일반적으로 X-Forwarded-For(XFF)지만 다른 헤더일 수도 있습니다.

IP 주소를 사용하는 규칙 문

IP 주소를 사용하는 규칙 문은 다음과 같습니다.

  • IP 집합 일치 - IP 주소가 IP 집합에 정의된 주소와 일치하는지 검사합니다.

  • 지리적 일치- IP 주소를 사용하여 오리진 국가 및 리전을 결정하고 오리진 국가를 국가 목록과 비교합니다.

  • 비율 기반 규칙 문 - 개별 IP 주소가 너무 높은 속도로 요청을 보내지 않도록 IP 주소별로 요청을 집계할 수 있습니다. IP 주소 집계를 단독으로 사용하거나 다른 집계 키와 함께 사용할 수 있습니다.

이러한 규칙 명령문에 웹 요청의 출처를 사용하는 대신 X-Forwarded-For 헤더나 다른 HTTP 헤더에서 전달된 IP 주소를 사용하도록 AWS WAF 지시할 수 있습니다. 사양을 제공하는 방법에 대한 자세한 내용은 개별 규칙 문 유형에 대한 지침을 참조하세요.

참고

지정한 헤더가 요청에 없는 경우 웹 요청에 규칙을 전혀 적용하지 AWS WAF 않습니다.

폴백 동작

전달된 IP 주소를 사용하면 요청의 지정된 위치에 유효한 IP 주소가 없는 경우 웹 요청에 AWS WAF 할당할 일치 상태를 지정합니다.

  • MATCH - 웹 요청을 규칙 설명과 일치하는 것으로 취급합니다. AWS WAF 요청에 규칙 조치를 적용합니다.

  • 일치하지 않음 - 웹 요청을 규칙 문과 일치하지 않는 것으로 처리합니다.

AWS WAF 봇 컨트롤에 사용되는 IP 주소

봇 컨트롤 관리 규칙 그룹은 의 IP 주소를 사용하여 봇을 확인합니다. AWS WAF Bot Control을 사용하고 프록시나 로드 밸런서를 통해 라우팅되는 봇을 확인한 경우 사용자 지정 규칙을 사용하여 봇을 명시적으로 허용해야 합니다. 예를 들어, 전달된 IP 주소를 사용하여 확인된 봇을 탐지하고 허용하는 사용자 지정 IP 집합 일치 규칙을 구성할 수 있습니다. 규칙을 사용하여 다양한 방식으로 봇 관리를 사용자 지정할 수 있습니다. 자세한 내용 및 예제는 AWS WAF 봇 컨트롤 섹션을 참조하세요.

전달된 IP 주소 사용에 대한 일반 고려 사항

전달된 IP 주소를 사용하기 전에 다음과 같은 일반적인 주의 사항을 참고하십시오.

  • 헤더는 과정 중에 프록시를 통해 수정될 수 있으며, 프록시는 다양한 방식으로 헤더를 처리할 수 있습니다.

  • 공격자가 AWS WAF 검사를 우회하기 위해 헤더의 내용을 변경할 수 있습니다.

  • 헤더 내 IP 주소는 형식이 잘못되었거나 유효하지 않을 수 있습니다.

  • 지정한 헤더가 요청에 전혀 없을 수도 있습니다.

다음과 같이 전달된 IP 주소를 사용할 때 고려할 사항 AWS WAF

다음 목록은 에서 전달된 IP 주소를 사용하기 위한 요구 사항 및 주의 사항을 설명합니다. AWS WAF

  • 단일 규칙의 경우 전달된 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개가 넘는 주소가 포함된 경우 마지막 10개를 AWS WAF 검사합니다.

  • 주소가 여러 개 포함된 헤더는 주소 사이에 쉼표 구분 기호를 사용해야 합니다. 요청에 쉼표 이외의 구분자를 사용하는 경우 AWS WAF 는 헤더의 IP 주소 형식을 잘못된 것으로 간주합니다.

  • 헤더 내의 IP 주소 형식이 잘못되었거나 유효하지 않은 경우 AWS WAF 는 사용자가 전달된 IP 구성에 지정하는 폴백 동작에 따라 웹 요청을 규칙과 일치하거나 일치하지 않는 것으로 지정합니다.

  • 지정한 헤더가 요청에 없는 경우 요청에는 규칙이 전혀 적용되지 AWS WAF 않습니다. 즉 AWS WAF , 규칙 동작이 적용되지 않고 폴백 동작도 적용되지 않습니다.

  • IP 주소에 대해 전달된 IP 헤더를 사용하는 규칙 문은 웹 요청 오리진에서 보고하는 IP 주소를 사용하지 않습니다.

다음과 같이 전달된 IP 주소를 사용하는 모범 사례 AWS WAF

전달된 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" } } } }