Spring Boot 4-mikrotjenester og REST API-er · leksjon

Sikre Actuator-endepunkter

Beskytt sensitive driftsendepunkter.

Leksjon 4 av 413 trinn

Sikre Actuator-endepunkter er en gratis leksjon i Spring Boot 4-mikrotjenester og REST API-er på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Spring Boot 4-mikrotjenester og REST API-er, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Spring Boot 4-mikrotjenester og REST API-er inneholder totalt 4 leksjoner.

Hvorfor Actuator må sikres

Actuator-endepunkter kan avsløre miljøvariabler, bean-er, tilordninger og til og med heap-dumper. Hvis de står åpne, lekker de sensitiv informasjon og kan tillate farlige operasjoner som shutdown. De må beskyttes i produksjon.

Minimer angrepsflaten først

Sikkerhet begynner med eksponering. Eksponer bare endepunktene operatørene faktisk trenger over HTTP, og utelukk sensitive endepunkter som env, beans og heapdump.

management:
  endpoints:
    web:
      exposure:
        include: health,info,prometheus
        exclude: env,beans,heapdump,threaddump

Legge til Spring Security

For å autentisere tilgang legger De til Spring Security. Når det finnes på classpath, sikrer det programmet — inkludert Actuator-endepunkter — og De definerer reglene.

<!-- pom.xml -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>

EndpointRequest-matcheren

Spring Boot tilbyr EndpointRequest-matchere, slik at sikkerhetskonfigurasjonen kan målrette Actuator-endepunkter nøyaktig uten å hardkode banen /actuator.

import static org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest.*;
// EndpointRequest.toAnyEndpoint()
// EndpointRequest.to("health", "info")

Låse ned endepunktene

En vanlig policy er å tillate health og info anonymt (for prober), men kreve en autentisert rolle for alt annet.

@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();
}

Rollebasert tilgang

Begrens administrasjonsendepunkter til en operasjonsrolle som ADMIN. Kombiner dette med det eksisterende brukerregisteret Deres — minnebasert i demonstrasjoner, en reell identitetsleverandør i produksjon.

@Bean
UserDetailsService users(PasswordEncoder encoder) {
    UserDetails admin = User.withUsername("ops")
        .password(encoder.encode("change-me"))
        .roles("ADMIN").build();
    return new InMemoryUserDetailsManager(admin);
}

Isolere med en administrasjonsport

Kjør Actuator på en separat port som bare er tilgjengelig inne i nettverket eller klyngen. Offentlig trafikk går til programporten; operatører får tilgang til administrasjonen via intern ruting.

management:
  server:
    port: 8081
# expose 8081 only to the internal network / sidecar

Prober uten legitimasjon

Kubernetes-prober kaller health/liveness og health/readiness uten autentisering. Tillat disse bestemte banene, samtidig som resten av health-detaljene og andre endepunkter fortsatt beskyttes.

.requestMatchers(EndpointRequest.to("health")).permitAll()
// keep show-details restricted so anonymous probes see only status

Skjule helsedetaljer

Selv når health er offentlig, må De ikke lekke komponentdetaljer til anonyme kallere. Sett show-details til when-authorized, slik at prober bare ser UP/DOWN.

management:
  endpoint:
    health:
      show-details: when-authorized

Deaktivere farlige endepunkter

Noen endepunkter kan endre tilstanden under kjøring. Hold shutdown deaktivert, og unngå å eksponere heapdump eller threaddump offentlig, siden de avslører minneinnhold og hjelper angripere.

management:
  endpoint:
    shutdown:
      enabled: false

Forsvar i dybden

Ingen enkeltkontroll er tilstrekkelig. Kombiner flere tiltak:

  • Minimal eksponering
  • Autentisering og roller
  • Nettverksisolasjon / separat port
  • Begrensede helsedetaljer

Kort kontroll

Test forståelsen Deres av sikring av Actuator.

Oppsummering

Behandle Actuator som en sikkerhetsperimeter.

  • Eksponer minst mulig; utelukk env, beans og heapdump
  • Legg til Spring Security og bruk EndpointRequest-matchere
  • Tillat health/info for prober; krev en rolle for resten
  • Begrens show-details og deaktiver shutdown
  • Isoler ved hjelp av en separat administrasjonsport
Gratis å komme i gang

Lær deg Java med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
24
Leksjoner
93

Ofte stilte spørsmål

Er leksjonen «Sikre Actuator-endepunkter» gratis?

Ja – hele teksten i «Sikre Actuator-endepunkter» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Spring Boot 4-mikrotjenester og REST API-er-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Spring Boot 4-mikrotjenester og REST API-er inneholder totalt 4 leksjoner.

Hva lærer jeg i «Sikre Actuator-endepunkter»?

Beskytt sensitive driftsendepunkter. Du øver på Spring Boot 4-mikrotjenester og REST API-er med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Spring Boot 4-mikrotjenester og REST API-er?

Ingen tidligere erfaring er nødvendig. Spring Boot 4-mikrotjenester og REST API-er på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Sikre Actuator-endepunkter»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Spring Boot 4-mikrotjenester og REST API-er-leksjonen?

Ja. Alle Spring Boot 4-mikrotjenester og REST API-er-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Aktivere Actuator-endepunkter
  2. Helseindikatorer
  3. Egendefinerte metrikker med Micrometer
  4. Sikre Actuator-endepunkter
← Tilbake til Spring Boot 4-mikrotjenester og REST API-er