이 페이지는 Apigee 및 Apigee Hybrid에 적용됩니다.
Apigee Edge 문서 보기
API 요청에서 클라이언트 IP 주소를 정확하게 식별하는 것은 분석 및 악용 감지 및 보안 작업과 같은 고급 API 보안 기능을 비롯한 Apigee 내의 일부 기능에 중요합니다.
프록시와 부하 분산기를 사용하는 최신 네트워크 아키텍처에서는 클라이언트 IP 식별 프로세스가 어렵습니다. 이러한 중간 요소가 실제 출발 IP 주소를 가릴 수 있기 때문입니다.
이 문제를 해결하기 위해 Apigee는 X-Forwarded-For (XFF) 헤더에서 클라이언트 IP 주소를 확인하는 방법을 지정하는 환경 수준 설정을 지원하여 네트워크 토폴로지 및 보안 요구사항의 IP 주소와 일치하는 헤더의 색인을 식별합니다. 이 설정을 사용하면 환경의 모든 요청에 대해 클라이언트 IP 주소가 결정되는 방식을 확인, 일관성 있게 제어할 수 있으며, 환경의 지능화된 API 보안, 흐름 변수, 분석 변수 전반에서 일관된 클라이언트 IP 주소 식별이 가능합니다.
환경 수준 클라이언트 IP 확인이 이 페이지에 설명된 대로 구성되지 않으면 클라이언트 IP 주소 변수가 기본 클라이언트 IP 주소 확인 동작을 사용하여 채워집니다.
기본 클라이언트 IP 주소 확인
클라이언트 IP 확인이 환경 수준에서 구성되지 않은 경우 ax_resolved_client_ip
측정기준의 기본값은 애널리틱스 측정기준에 설명된 대로 계산됩니다.
환경에 클라이언트 IP 확인이 구성된 경우 흐름 및 애널리틱스 변수가 클라이언트 IP 확인 구성에서 설정됩니다. 환경의 클라이언트 IP 확인 설정을 참고하세요.
환경의 클라이언트 IP 해상도를 설정해야 하는 경우
클라이언트 IP 확인을 설정하는 것은 필수사항이 아니지만 기본 클라이언트 IP 주소 확인이 요구사항을 충족하지 않고 이를 재정의하여 애널리틱스, 고급 API 보안 또는 클라이언트 IP 주소에 관한 일관되고 안정적인 정보가 필요한 기타 기능을 실행하기 위해 지정된 클라이언트 IP 주소 확인을 제공하려는 경우 설정하는 것이 좋습니다.
클라이언트 IP 확인 구성 문법 이해
클라이언트 IP 확인 설정의 형식은 다음과 같습니다.
"clientIpResolutionConfig": { "headerIndexAlgorithm": { "ipHeaderName" : "X-Forwarded-For", "ipHeaderIndex": 2 } }
ipHeaderName
는 클라이언트 IP에 사용할 헤더입니다. 현재 지원되는 헤더 값은X-Forwarded-For
입니다.ipHeaderIndex
는ipHeaderName
내의 색인 값입니다.
positive number selects an address starting from the left (the first address added to the header), where the left의 첫 번째 위치는0
이고 이후 주소마다 1씩 증가합니다 (예:0, 1, 2
). 예를 들어 목록이192.0.2.1, 192.0.2.2, 192.0.2.3
인 경우 색인1
은192.0.2.2
로 확인됩니다.
음수는 오른쪽에서 시작하는 주소 (헤더에 추가된 마지막 주소)를 선택하며, 여기서 오른쪽의 첫 번째 위치는-1
이고 후속 주소마다 1씩 감소합니다 (예:-3, -2, -1
). 예를 들어 목록이192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4
인 경우 색인-1
은192.0.2.4
로 확인되고 색인-2
은192.0.2.3
로 확인됩니다.
이 설정에 관한 자세한 내용은 organizations.environment API를 참고하세요.
클라이언트 IP 확인 구성 보기
Apigee UI 또는 관리 API를 사용하여 환경의 현재 클라이언트 IP 확인 구성을 볼 수 있습니다.
UI를 사용하여 클라이언트 IP 확인 구성 보기
Cloud 콘솔의 Apigee UI를 사용하여 클라이언트 IP 확인 설정을 보려면 관리 > 환경을 선택하고 환경을 선택한 다음 정보 탭에서 클라이언트 IP 구성을 확인하세요.
API를 사용하여 클라이언트 IP 확인 구성 보기
Apigee Management API를 사용하여 클라이언트 IP 확인 구성을 보려면 organizations.environments.get API에 요청을 보냅니다.
환경의 클라이언트 IP 확인 설정
환경에 클라이언트 IP 확인 구성을 설정하면 지정된 알고리즘을 사용하여 client.resolved.ip
흐름 변수가 채워집니다. Resolved Client IP
애널리틱스 측정기준도 마찬가지입니다.
환경에 클라이언트 IP 확인 구성을 설정하면 변경사항이 보안 작업 규칙의 기존 지능화된 API 보안 구성에 영향을 줄 수 있습니다. 새 변수와 설정을 사용하도록 기존 규칙을 검토하고 필요한 경우 다시 생성합니다.
클라이언트 IP 확인을 위한 색인을 선택할 때는 다음 사항을 고려하세요.
- Apigee 간 호출은 특수 사례로 처리되지 않습니다. IP 수를 기록하고 그에 따라 건너뛰어야 합니다.
- X-Forwarded-For 헤더는 스푸핑될 수 있으므로 클라이언트와 Apigee 부하 분산기 간에 예상되는 홉 수를 기반으로 올바른 색인을 사용하는 것이 좋습니다. 악의적인 사용자는 사전 작성된 X-Forwarded-For 헤더를 전송할 수 있습니다. XFF의 첫 번째 IP는 실제 클라이언트 IP와 가장 가깝지만, 부하 분산기가 연결된 TCP 클라이언트를 알고 있으므로 XFF의 마지막 IP가 가장 신뢰할 수 있습니다.
환경에서 클라이언트 IP 확인을 설정하려면 Apigee API Management API 중 하나를 사용하여 client_ip_resolution_config
에서 환경의 클라이언트 IP 확인을 설정합니다.
새 환경에는 organizations.environments.create를 사용하세요. 기존 환경에는 updateEnvironment 또는 modifyEnvironment를 사용하세요.
클라이언트 IP 주소 확인 테스트
새 클라이언트 IP 구성을 저장한 후 다음 안내에 따라 테스트할 수 있습니다.
- 새 구성 설정을 저장한 후 5분 이상 기다립니다.
- 디버그 세션을 시작합니다. 모든 FlowInfo 표시 설정을 사용 설정합니다.
- 프록시 요청 흐름 시작 직전에 FlowInfo를 확인합니다. 구성된 클라이언트 IP 주소가 섹션에 캡처되어 표시됩니다.
FlowInfo에서 다음 변수를 찾습니다.
client_ip_resolution.resolved.ip
: 확인된 클라이언트 IP 주소입니다.client_ip_resolution.used.fallback
: 불리언. 구성된 클라이언트 IP 확인을 사용할 수 없어 Apigee가 기본 클라이언트 IP 확인으로 대체하지 않는 한 이 값은false
입니다. 예를 들어 구성된 해상도가 헤더에 없는 색인을 지정하는 경우입니다.client_ip_resolution.algorithm
: 클라이언트 IP 주소를 확인하는 데 사용되는 알고리즘입니다. 구성된 경우"HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}"
입니다. 그렇지 않으면default
가 표시됩니다.
제한사항
환경 수준 클라이언트 IP 확인에는 다음과 같은 제한사항이 적용됩니다.
- 클라이언트 IP 확인 구성을 업데이트해도 적용되기까지 최대 5분이 걸릴 수 있습니다.
- 클라이언트 IP 확인 구성을 자주 변경하면 (예: 5분마다) 성능이 저하될 수 있으므로 피하세요.
- 현재 Apigee Hybrid에서는 환경의 클라이언트 IP 해상도 구성을 설정할 수 없습니다.
- 구성은 Apigee Console 또는 API를 통해 볼 수 있지만 API를 통해서만 설정할 수 있습니다.
- 악의적인 사용자가 없더라도 X-Forwarded-For 목록은 각 프록시를 사용하여 목록에 올바른 정보를 추가합니다. 이 전체 목록은 Apigee의 감독 및 관리 범위에 해당하지 않으므로 클라이언트 IP 확인 구성을 설정해도 올바른 요청 IP 주소를 식별할 수 있는 것은 아닙니다.