피드로 돌아가기
Spring Boot Actuator in Production: The Endpoints I Left Open by Accident and How I Closed Them
Dev.toDev.to
Security

Spring Boot Actuator 설정 오류로 인한 JVM Heap Dump 및 환경 변수 노출 차단

Spring Boot Actuator in Production: The Endpoints I Left Open by Accident and How I Closed Them

Juan Torchia2026년 5월 11일11intermediate

Context

Spring Boot Actuator의 기본 설정이 개발 편의성에 치중되어 Production 환경의 보안 취약점을 유발함. 특히 Prometheus 연동 가이드 등에서 권장하는 exposure.include=* 설정이 인증 없는 엔드포인트 전면 개방이라는 치명적 리스크를 초래함.

Technical Solution

  • management.endpoints.web.exposure.include=* 설정을 통한 무분별한 엔드포인트 노출 제거
  • /actuator/env 내 민감 정보 노출을 방지하기 위한 Heuristic 기반 마스킹의 한계 파악 및 접근 제어 적용
  • JVM 메모리 전체를 덤프하는 /actuator/heapdump 및 내부 구조를 노출하는 /actuator/beans에 대한 401/404 응답 강제
  • Spring Security 계층을 추가하여 특정 관리자 권한 보유자만 Actuator 엔드포인트에 접근 가능한 2단계 방어 체계 구축
  • Load Balancer를 위한 /actuator/health 엔드포인트만 최소 권한으로 유지하는 선별적 노출 전략 채택

- `curl`을 이용한 `/actuator` 인덱스 페이지의 엔드포인트 열거 여부 확인 - `/actuator/env`, `/actuator/heapdump`, `/actuator/beans` 호출 시 401 또는 404 상태 코드 반환 검증 - 민감 정보 변수명(예: MY_SIGNING_KEY)이 Spring의 자동 마스킹 대상에서 제외되는지 확인 - Health Check 목적 외의 모든 Actuator 엔드포인트에 대해 Spring Security 인증 필터 적용

원문 읽기