Spring Boot 4-mikrotjänster och REST API:er · Lektion

Säkra Actuator-endpoints

Skydda känsliga driftendpoints.

Lektion 4 av 413 steg

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,threaddump

Lä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 / sidecar

Prober 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 status

Dö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-authorized

Inaktivera 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: false

Fö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, beans och heapdump
  • Lägg till Spring Security och använd EndpointRequest-matchare
  • Tillåt health/info för prober; kräv en roll för resten
  • Begränsa show-details och inaktivera shutdown
  • Isolera med en separat hanteringsport
Gratis att börja

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

  1. Aktivera Actuator-endpoints
  2. Hälsoindikatorer
  3. Anpassade mätvärden med Micrometer
  4. Säkra Actuator-endpoints
← Tillbaka till Spring Boot 4-mikrotjänster och REST API:er