Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät · Oppitunti

Actuator-päätepisteiden suojaaminen

Suojatkaa arkaluontoiset ylläpitopäätepisteet.

Oppitunti 4/413 vaihetta

Actuator-päätepisteiden suojaaminen on ilmainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 4 oppituntia.

Miksi Actuator on suojattava

Actuatorin päätepisteet voivat paljastaa ympäristömuuttujia, beaneja, mappauksia ja jopa kekomuistivedoksia. Avoimina ne vuotavat arkaluonteisia tietoja ja voivat mahdollistaa vaarallisia toimintoja, kuten shutdown-toiminnon. Ne on suojattava tuotannossa.

Pienentäkää hyökkäyspinta ensin

Tietoturva alkaa näkyvyyden hallinnasta. Tuokaa HTTP:n kautta näkyviin vain ne päätepisteet, joita ylläpitäjät todella tarvitsevat, ja jättäkää arkaluonteiset päätepisteet, kuten env, beans ja heapdump, pois.

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

Spring Securityn lisääminen

Lisätkää Spring Security käyttöoikeuksien todentamista varten. Kun se on luokkapolulla, se suojaa sovelluksen, myös Actuatorin päätepisteet, ja voitte määrittää säännöt.

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

EndpointRequest-sovitin

Spring Boot tarjoaa EndpointRequest-sovittimet, joiden avulla tietoturvamäärityksenne voivat kohdistaa Actuatorin päätepisteisiin täsmällisesti ilman, että /actuator-polkua tarvitsee kirjoittaa kiinteästi.

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

Päätepisteiden lukitseminen

Tyypillinen käytäntö on sallia health ja info anonyymisti tarkistuksia varten, mutta edellyttää todennettua roolia kaikilta muilta päätepisteiltä.

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

Roolipohjainen käyttöoikeus

Rajoittakaa hallintapäätepisteet esimerkiksi ADMIN-operaatioroolille. Yhdistäkää tämä olemassa olevaan käyttäjätietovarastoonne — esittelyissä muistissa olevaan varastoon ja tuotannossa oikeaan identiteetintarjoajaan.

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

Eristäminen hallintaportilla

Suorittakaa Actuator erillisessä portissa, johon pääsee vain verkon tai klusterin sisältä. Julkinen liikenne kulkee sovellusporttiin, kun taas ylläpitäjät käyttävät hallintaa sisäisen reitityksen kautta.

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

Tarkistukset ilman tunnistetietoja

Kubernetesin tarkistukset kutsuvat päätepisteitä health/liveness ja health/readiness ilman todennusta. Sallikaa nämä tietyt polut, mutta suojatkaa edelleen muun health-päätepisteen tiedot ja muut päätepisteet.

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

Terveystietojen piilottaminen

Älkää vuotako komponenttien sisäisiä tietoja anonyymeille kutsujille, vaikka health olisi julkinen. Asettakaa show-details arvoon when-authorized, jotta tarkistukset näkevät vain arvon UP/DOWN.

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

Poistakaa vaaralliset päätepisteet käytöstä

Jotkin päätepisteet voivat muuttaa ajonaikaista tilaa. Pitäkää shutdown poissa käytöstä ja välttäkää päätepisteiden heapdump ja threaddump julkista näkyvyyttä, koska ne paljastavat muistin sisältöä ja auttavat hyökkääjiä.

management:
  endpoint:
    shutdown:
      enabled: false

Puolustus kerroksittain

Yksikään yksittäinen hallintakeino ei riitä. Yhdistäkää seuraavat toimet:

  • Vähimmäisnäkyvyys
  • Todennus ja roolit
  • Verkon eristäminen / erillinen portti
  • Terveystietojen rajoittaminen

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte Actuatorin suojaamisen.

Kertaus

Käsitelkää Actuatoria tietoturvaperimetrinä.

  • Tuokaa näkyviin mahdollisimman vähän; jättäkää env, beans ja heapdump pois
  • Lisätkää Spring Security ja käyttäkää EndpointRequest-sovittimia
  • Sallikaa health/info tarkistuksia varten ja edellyttäkää roolia muilta
  • Rajoittakaa show-details-asetusta ja poistakaa shutdown käytöstä
  • Eristäkää hallinta erillisellä hallintaportilla
Aloita maksutta

Opi Java tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
24
Oppitunnit
93

Usein kysytyt kysymykset

Onko oppitunti ”Actuator-päätepisteiden suojaaminen” ilmainen?

Kyllä – oppitunnin ”Actuator-päätepisteiden suojaaminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssin, päivitä CoddyKit PROhon. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Actuator-päätepisteiden suojaaminen”?

Suojatkaa arkaluontoiset ylläpitopäätepisteet. Harjoittelet Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Actuator-päätepisteiden suojaaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunnilla?

Kyllä. Jokainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Actuator-päätepisteiden käyttöönotto
  2. Terveysmittarit
  3. Mukautetut mittarit Micrometerilla
  4. Actuator-päätepisteiden suojaaminen
← Takaisin: Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät