안녕하세요! 😊
오늘은 Spring Boot에서 애플리케이션 모니터링을 위한 Actuator와 보안 설정에 대해 자세히 알아보겠습니다.
Actuator는 애플리케이션의 상태를 확인하고 관리할 수 있는 편리한 기능을 제공합니다.
보안 설정을 통해 민감한 데이터를 보호하는 방법도 함께 다루겠습니다.
1. Spring Boot Actuator란?
Spring Boot Actuator는 애플리케이션의 상태와 메트릭스를 모니터링할 수 있는 여러 엔드포인트를 제공합니다.
이 엔드포인트는 개발 및 운영 환경에서 애플리케이션의 상태를 실시간으로 확인하는 데 유용합니다.
Actuator가 제공하는 주요 엔드포인트
엔드포인트 | 설명 |
---|---|
/actuator/health |
애플리케이션의 상태를 확인합니다. |
/actuator/metrics |
애플리케이션의 메트릭스를 제공합니다. |
/actuator/env |
애플리케이션의 환경 변수를 보여줍니다. |
/actuator/loggers |
로깅 설정을 확인하고 변경할 수 있습니다. |
기본적으로 Actuator는 일부 엔드포인트만 활성화되며, 추가 설정을 통해 더 많은 엔드포인트를 활성화할 수 있습니다.
2. Spring Boot Actuator 설정하기
Actuator를 활성화하려면 spring-boot-starter-actuator
의존성을 추가해야 합니다:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
}
이후 application.properties
또는 application.yml
파일에서 필요한 엔드포인트를 설정할 수 있습니다.
# application.yml
management:
endpoints:
web:
exposure:
include: "*" # 모든 엔드포인트 활성화
endpoint:
health:
show-details: always # Health 상태의 세부정보 표시
Actuator 엔드포인트 호출
애플리케이션을 실행한 후 http://localhost:8080/actuator/health
로 호출하여 상태를 확인할 수 있습니다.
3. Actuator와 보안 설정
Actuator 엔드포인트는 민감한 정보를 포함할 수 있으므로 보안 설정이 중요합니다.
Spring Security를 사용하여 엔드포인트 접근을 제어할 수 있습니다.
보안 설정 예제
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/actuator/health").permitAll() // health 엔드포인트 공개
.antMatchers("/actuator/**").hasRole("ADMIN") // 나머지 엔드포인트는 ADMIN만 접근 가능
.anyRequest().authenticated()
.and()
.httpBasic(); // Basic 인증 사용
}
}
위 설정은 /actuator/health
엔드포인트는 공개하며, 다른 모든 Actuator 엔드포인트는 ADMIN
권한이 있는 사용자만 접근 가능하도록 설정합니다.
사용자 인증 추가
기본적인 사용자 인증을 추가하려면 application.properties
에 다음 설정을 추가하세요:
spring.security.user.name=admin
spring.security.user.password=admin123
spring.security.user.roles=ADMIN
이제 admin
사용자로 로그인하여 Actuator 엔드포인트에 접근할 수 있습니다.
4. Actuator 활용 사례
1) 애플리케이션 상태 모니터링
운영 환경에서 /actuator/health
엔드포인트를 사용하여 애플리케이션 상태를 확인합니다.
2) 메트릭스 기반 성능 분석
/actuator/metrics
엔드포인트를 활용하여 CPU 사용량, 메모리 사용량 등의 정보를 실시간으로 확인할 수 있습니다.
3) 동적 로깅 수준 조정
/actuator/loggers
엔드포인트를 사용하여 로깅 수준을 실시간으로 조정할 수 있습니다.
5. 마무리
Spring Boot Actuator는 애플리케이션 상태를 모니터링하고 관리하는 데 매우 유용한 도구입니다.
보안 설정을 통해 민감한 데이터를 보호하면서도 필요한 정보를 효과적으로 활용할 수 있습니다.
이 글이 Spring Boot Actuator를 이해하고 활용하는 데 도움이 되었길 바랍니다! 😊
궁금한 점이 있다면 댓글로 남겨주세요. 다음에도 유익한 내용을 준비하겠습니다! 🚀
'스프링 시큐리티와 보안 가이드' 카테고리의 다른 글
[Spring Security] Spring Security의 FilterChain 구조 완벽 이해 (0) | 2025.01.25 |
---|---|
[Spring Security] 스프링시큐리티에서 Role과 Authority의 차이 및 활용법 (1) | 2025.01.23 |
[Spring Security] 스프링 시큐리티에서 REST API 보안을 위한 HMAC 적용 (1) | 2025.01.23 |