피드로 돌아가기
Dev.toSecurity
원문 읽기
Network Boundary 기반 Trust Protocol을 통한 내부 서비스 인증 최적화
How I Secured Internal Microservice Calls Without Passing JWTs
AI 요약
Context
Gateway에서 JWT 검증 후 내부 서비스 간 통신 시 사용자 신원을 전파하는 방식의 한계 직면. 특히 Scheduled Job 및 Async Flow 환경에서 HTTP Request Context 부재로 인한 인증 불가 문제 발생.
Technical Solution
- JWT Forwarding 및 Thread-local 기반 RequestContextHolder의 비동기 환경 내 불확실성 제거
- Network Boundary를 보안 모델의 일부로 정의하여 Private Network 내 신뢰 기반 통신 설계
- Gateway 단계에서 모든 외부 유입 X-Internal-Call 헤더를 제거하여 Spoofing 원천 차단
- 내부 호출 시 X-User-Id와 X-Internal-Call 헤더를 조합한 가벼운 신원 증명 방식 채택
- Receiver 서비스에서 해당 헤더 확인 후 JWT 검증 과정을 생략하고 SecurityContext를 직접 생성하는 로직 구현
실천 포인트
- 외부 유입 지점(Gateway)에서 내부 전용 보안 헤더를 엄격히 필터링하는지 확인 - 비동기 작업 및 스케줄러의 인증 요구 사항을 분석하여 토큰 기반 인증의 의존성 제거 검토 - 서비스 간 신뢰 모델 설계 시 네트워크 격리 수준과 헤더 기반 인증의 보안 리스크 대조 분석