EnvoyFilter
목차
개요
구조
주요 사용 사례
1. 커스텀 헤더 추가
2. Rate Limiting
3. WASM 플러그인
X-Forwarded-For 및 Hop 설정
X-Forwarded-For 개요
XFF 설정 옵션
1. use_remote_address 설정
설정 값
동작
사용 시나리오
2. xff_num_trusted_hops 설정
실제 시나리오별 설정
시나리오 1: AWS ALB + Istio Gateway
시나리오 2: Client → CloudFront → ALB → Gateway
시나리오 3: Client → CloudFront → NLB → ALB → Gateway
시나리오 4: Client → ALB → Gateway (직접 연결)
시나리오 3: 내부 서비스 간 통신 (Sidecar)
XFF 관련 추가 옵션
skip_xff_append
via 헤더 설정
실제 클라이언트 IP 추출 예제
XFF 검증 및 디버깅
1. 헤더 확인
2. 실제 요청으로 테스트
3. Envoy 액세스 로그 활성화
보안 고려사항
1. XFF 스푸핑 방지
2. 내부 서비스 보호
선택적 앱별 IP 제한 (Gateway + AuthorizationPolicy)
아키텍처 개요
핵심 원리
구현 예시
동작 흐름
왜 Gateway 설정이 필요한가?
테스트
요약
구성 요소
적용 범위
목적
필수 여부
XFF 기반 IP 접근 제어
1. AuthorizationPolicy로 IP Whitelist (권장)
2. AuthorizationPolicy로 IP Blacklist (권장)
3. 경로별 IP 제한 (AuthorizationPolicy)
4. 복합 정책: IP + 경로 + 메서드
5. Whitelist + Blacklist 조합
6. 테스트
7. 고급: EnvoyFilter로 커스텀 거부 메시지 (선택적)
모범 사례
정적 응답 설정
정적 응답 개요
사용 사례
구현 방법 선택 가이드
방법
사용 시기
장점
단점
VirtualService로 정적 응답 구현
1. 기본 정적 응답 (directResponse)
2. 헬스체크 엔드포인트
3. 특정 경로 차단
4. Fault Injection으로 에러 시뮬레이션
AuthorizationPolicy로 접근 제어
1. 소스 IP 기반 접근 제어
2. 경로별 IP 제한
3. X-Forwarded-For 헤더 기반 제어
4. 커스텀 거부 응답
ProxyConfig로 Envoy 설정
1. 워크로드별 프록시 설정
2. 통계 및 메트릭 설정
통합 예제: VirtualService + AuthorizationPolicy
시나리오: API 서비스 보호
Lua를 사용한 동적 정적 응답
유지보수 시간대 자동 감지
요청 헤더 기반 응답
VirtualService와 통합
실전 시나리오
시나리오 1: Blue/Green 배포 중 트래픽 차단
시나리오 2: Rate Limit 초과 시 429 응답
시나리오 3: 카나리 배포 테스트 응답
테스트 및 검증
정적 응답 테스트
Envoy 구성 확인
모범 사례
주의사항
실전 예제
예제 1: 요청/응답 로깅
예제 2: JWT 검증
모범 사례
문제 해결
참고 자료
마지막 업데이트