Säkra Actuator-endpoints
Skydda känsliga driftendpoints.
Säkra Actuator-endpoints är en gratis lektion i Spring Boot 4-mikrotjänster och REST API:er på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Spring Boot 4-mikrotjänster och REST API:er, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Spring Boot 4-mikrotjänster och REST API:er innehåller totalt 4 lektioner.
Varför Actuator måste skyddas
Actuator-slutpunkter kan avslöja miljövariabler, beans, mappningar och till och med heap-dumpar. Om de lämnas öppna läcker de känslig information och kan möjliggöra farliga åtgärder som shutdown. De måste skyddas i produktion.
Minimera attackytan först
Säkerhet börjar med exponeringen. Exponera endast de slutpunkter som driftansvariga verkligen behöver via HTTP och exkludera känsliga slutpunkter som env, beans och heapdump.
management:
endpoints:
web:
exposure:
include: health,info,prometheus
exclude: env,beans,heapdump,threaddumpLägg till Spring Security
Lägg till Spring Security för att autentisera åtkomst. När det finns på classpath skyddar det programmet — inklusive Actuator-slutpunkter — och du definierar reglerna.
<!-- pom.xml -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>EndpointRequest-matcharen
Spring Boot tillhandahåller EndpointRequest-matchare så att din säkerhetskonfiguration kan rikta in sig exakt på Actuator-slutpunkter utan att hårdkoda sökvägen /actuator.
import static org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest.*;
// EndpointRequest.toAnyEndpoint()
// EndpointRequest.to("health", "info")Lås slutpunkterna
En vanlig policy är att tillåta health och info anonymt (för prober), men kräva en autentiserad roll för allt annat.
@Bean
SecurityFilterChain actuatorSecurity(HttpSecurity http) throws Exception {
http.securityMatcher(EndpointRequest.toAnyEndpoint())
.authorizeHttpRequests(a -> a
.requestMatchers(EndpointRequest.to("health", "info")).permitAll()
.anyRequest().hasRole("ADMIN"))
.httpBasic(Customizer.withDefaults());
return http.build();
}Rollbaserad åtkomst
Begränsa hanteringsslutpunkter till en driftroll som ADMIN. Kombinera detta med ditt befintliga användarlager — minne för demonstrationer och en riktig identitetsleverantör i produktion.
@Bean
UserDetailsService users(PasswordEncoder encoder) {
UserDetails admin = User.withUsername("ops")
.password(encoder.encode("change-me"))
.roles("ADMIN").build();
return new InMemoryUserDetailsManager(admin);
}Isolera med en hanteringsport
Kör Actuator på en separat port som endast kan nås inom ditt nätverk eller kluster. Offentlig trafik går till programmets port; driftansvariga når hanteringen via intern routing.
management:
server:
port: 8081
# expose 8081 only to the internal network / sidecarProber utan autentiseringsuppgifter
Kubernetes-prober anropar health/liveness och health/readiness utan autentisering. Tillåt dessa specifika sökvägar, men skydda fortfarande resten av health-detaljerna och övriga slutpunkter.
.requestMatchers(EndpointRequest.to("health")).permitAll()
// keep show-details restricted so anonymous probes see only statusDölj hälsoinformation
Även när health är offentlig ska du inte läcka interna komponentdetaljer till anonyma anropare. Sätt show-details till when-authorized så att prober endast ser UP/DOWN.
management:
endpoint:
health:
show-details: when-authorizedInaktivera farliga slutpunkter
Vissa slutpunkter kan ändra tillståndet under körning. Låt shutdown vara inaktiverad och undvik att exponera heapdump eller threaddump offentligt, eftersom de avslöjar minnesinnehåll och hjälper angripare.
management:
endpoint:
shutdown:
enabled: falseFörsvar i flera lager
Ingen enskild kontroll räcker. Kombinera flera åtgärder:
- Minimal exponering
- Autentisering och roller
- Nätverksisolering / separat port
- Begränsad hälsoinformation
Snabb kontroll
Testa din förståelse av hur Actuator skyddas.
Sammanfattning
Behandla Actuator som en säkerhetsperimeter.
- Exponera så lite som möjligt; exkludera
env,beansochheapdump - Lägg till Spring Security och använd
EndpointRequest-matchare - Tillåt
health/infoför prober; kräv en roll för resten - Begränsa
show-detailsoch inaktiverashutdown - Isolera med en separat hanteringsport
Lär dig Java med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 24
- Lektioner
- 93
Vanliga frågor
Är lektionen ”Säkra Actuator-endpoints” gratis?
Ja – hela texten till ”Säkra Actuator-endpoints” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Spring Boot 4-mikrotjänster och REST API:er, kan Ni uppgradera till CoddyKit PRO. Kursen i Spring Boot 4-mikrotjänster och REST API:er innehåller totalt 4 lektioner.
Vad lär jag mig i ”Säkra Actuator-endpoints”?
Skydda känsliga driftendpoints. Ni övar på Spring Boot 4-mikrotjänster och REST API:er med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Spring Boot 4-mikrotjänster och REST API:er?
Du behöver inga förkunskaper. Utbildningen i Spring Boot 4-mikrotjänster och REST API:er på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Säkra Actuator-endpoints”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Spring Boot 4-mikrotjänster och REST API:er-lektionen?
Ja. Varje Spring Boot 4-mikrotjänster och REST API:er-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Aktivera Actuator-endpoints
- Hälsoindikatorer
- Anpassade mätvärden med Micrometer
- Säkra Actuator-endpoints