피드로 돌아가기
Spring Security with Spring Boot Actuator: the authorization model that survived the incident
Dev.toDev.to
Security

암시적 설정을 배제한 Explicit SecurityFilterChain 도입으로 Actuator 보안 사고 원천 차단

Spring Security with Spring Boot Actuator: the authorization model that survived the incident

Juan Torchia2026년 5월 12일11intermediate

Context

Spring Boot 3의 기본 설정에 의존한 Actuator 권한 관리로 인해 /env, /metrics 등 민감한 엔드포인트가 외부로 노출되는 보안 취약점 발생. 버전 업데이트 시 기본 동작 변경으로 인해 Security Contract가 무너질 수 있는 암시적(Implicit) 인증 모델의 구조적 한계 노출.

Technical Solution

  • @Order(1) 설정을 통한 Actuator 전용 SecurityFilterChain의 우선순위 보장 및 메인 앱 체인과 물리적 분리
  • securityMatcher("/actuator/**")를 활용하여 Actuator 경로에 대해서만 독립적인 보안 정책을 적용하는 격리 구조 설계
  • Liveness/Readiness Probe 등 인프라 필수 경로는 permitAll()로 개방하되, 나머지 관리자 기능은 ACTUATOR_ADMIN 역할 기반으로 명시적 제한
  • 내부 API 특성에 따라 CSRF를 disable하고 SessionCreationPolicy.STATELESS를 적용하여 불필요한 상태 관리 제거
  • application.yml의 노출 설정에 의존하지 않고 코드 레벨에서 권한 의도를 명시하여 버전 변경에도 일관된 보안 수준 유지
  • staging 환경에서 DEBUG 로그를 통해 Request와 SecurityFilterChain의 매칭 여부를 검증하는 진단 프로세스 구축

- Spring Boot Actuator 사용 시 기본 설정 대신 전용 SecurityFilterChain을 정의했는가? - @Order 어노테이션을 통해 보안 체인의 실행 순서가 명확히 제어되고 있는가? - 인프라 프로브(/health)와 관리자 엔드포인트(/metrics, /env)의 접근 권한을 분리했는가? - 신규 엔드포인트 추가 시 기본 허용이 아닌 명시적 거부(Deny-by-default) 원칙이 적용되었는가?

원문 읽기