피드로 돌아가기
How I Secured Internal Microservice Calls Without Passing JWTs
Dev.toDev.to
Security

Network Boundary 기반 Trust Protocol을 통한 내부 서비스 인증 최적화

How I Secured Internal Microservice Calls Without Passing JWTs

Anupam Kushwaha2026년 5월 21일2intermediate

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)에서 내부 전용 보안 헤더를 엄격히 필터링하는지 확인 - 비동기 작업 및 스케줄러의 인증 요구 사항을 분석하여 토큰 기반 인증의 의존성 제거 검토 - 서비스 간 신뢰 모델 설계 시 네트워크 격리 수준과 헤더 기반 인증의 보안 리스크 대조 분석

원문 읽기