스프링/스프링부트
액츄에이터와 보안
chanhee01
2023. 10. 1. 14:32
액츄에이터가 제공하는 기능은 애플리케이션의 내부 정보를 많이 노출하기에 외부 인터넷 망이 공개된 곳에 액츄에이터의 엔드포인트를 공개하는 것은 보안상 좋지 않다.
외부에서 접근할 수 없게 만들고 내부에서만 접근 가능하도록 내부망을 사용하는 것이 좋은 방법이다.
내부망을 사용하는 것이 가장 좋은 방법이지만 이외에도 2가지 방법이 있다.
1. 액츄에이터 포트 설정
외부에 노출되는 8080 포트에서 액츄에이터에 접근할 수 없도록 다른 포트에 액츄에이터를 설정하는 것이다.
application.yml
management:
server:
port: 9292

프로그램 재시작을 하면 8080포트와 9292포트가 같이 실행된다.
localhost:8080/actuator로 연결하면 접근할 수 없고 localhost:9292/actuator로 접근해야지 actuator의 정보를 볼 수 있다.
2. 액츄에이터 URL 경로에 인증 설정
포트를 분리하는 것이 어렵다면 /actuator 경로에 서블릿 필터, 스프링 인터셉터, 스프링 시큐리티를 사용해서 인증되어야지만 접근할 수 있도록 설정하는 것이다.
둘 다 괜찮은 방법이지만 그럼에도 불구하고 내부망을 사용하는 것이 가장 좋은 방법이다.