Docker og Kubernetes for utviklere · leksjon

Beste praksis for sikkerhet og produksjon

Utforsk viktige sikkerhetshensyn og beste praksis for å kjøre Docker-containere i produksjonsmiljøer.

Leksjon 3 av 411 trinn

Beste praksis for sikkerhet og produksjon er en gratis leksjon i Docker og Kubernetes for utviklere på CoddyKit. Dette er leksjon 3 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 Docker og Kubernetes for utviklere, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Docker og Kubernetes for utviklere inneholder totalt 4 leksjoner.

Docker-sikkerhet: Hvorfor det er viktig

Å kjøre Docker-containere i produksjon gir store fordeler, men medfører også viktige sikkerhetshensyn. Én enkelt sårbarhet kan eksponere hele applikasjonen eller alle dataene Deres.

Denne leksjonen dekker viktige anbefalte fremgangsmåter for å styrke Docker-oppsettet og sørge for at applikasjonene Deres er sikre og pålitelige i produksjonsmiljøer.

Skann images etter sårbarheter

Før utrulling bør De alltid skanne Docker-imagene Deres etter kjente sårbarheter. Verktøy som Trivy, Clair eller tjenester fra Docker Hub kan oppdage utdaterte biblioteker eller usikre konfigurasjoner.

  • Tidlig oppdagelse: Oppdag problemer under utviklingen.
  • Forebygg utnyttelse: Unngå å rulle ut images med kjente svakheter.
  • Samsvar: Oppfyll sikkerhetsstandarder.

Kjør som en bruker uten root-rettigheter

Containere kjører ofte prosesser som root internt. Dette utgjør en risiko! Hvis en container blir kompromittert, får en angriper root-tilgang i containeren, noe som potensielt kan påvirke vertssystemet.

Konfigurer alltid Dockerfile-filen slik at applikasjonene kjører med en egen bruker uten privilegier. De kan også angi brukeren ved kjøring.

docker run --rm -u $(id -u):$(id -g) alpine:latest id -un

Begrens containerressurser

Containere uten begrensninger kan bruke for mye CPU eller minne, noe som kan føre til ytelsesproblemer eller til og med tjenestenektangrep (DoS) mot vertssystemet eller andre containere.

Definer alltid ressursgrenser for containerne ved hjelp av Dockers innebygde alternativer. Dette sikrer rettferdig ressursdeling og stabilitet.

docker run --rm --cpus=".5" --memory="128m" alpine:latest sh -c "echo 'Limited resources!'"

Beskytt Docker-daemonen

Docker-daemonen er kjernekomponenten som administrerer containere. Hvis API-et eksponeres eller daemonen kjøres usikkert, kan angripere få full kontroll over vertssystemet.

  • Bruk TLS: Sikre ekstern tilgang til daemonen med TLS-sertifikater.
  • Begrens tilgangen: Begrens hvem som kan få tilgang til daemonens socket (/var/run/docker.sock).
  • Brannmur: Konfigurer brannmurer på vertssystemet for å beskytte Docker-portene.

Isoler containernettverk

Som standard kan containere på samme vertssystem ofte kommunisere fritt. I produksjon bør De isolere tjenester fra hverandre ved hjelp av egendefinerte Docker-nettverk.

Dette reduserer angrepsflaten og sørger for at et kompromittert tjeneste ikke umiddelbart eksponerer andre tjenester. Tillat bare nødvendig kommunikasjon.

docker network create my-secure-network
docker run -d --rm --name db --network my-secure-network alpine:latest sleep 3600
docker run -d --rm --name app --network my-secure-network alpine:latest sleep 3600
docker network disconnect my-secure-network db
docker network rm my-secure-network

Håndter hemmeligheter på en sikker måte

Hardkod aldri sensitiv informasjon som API-nøkler, databaselegitimasjon eller private nøkler direkte i Dockerfile-filer, og legg dem aldri inn i kildekontroll.

Bruk Docker Secrets (for Swarm) eller eksterne verktøy for hemmelighetshåndtering, for eksempel HashiCorp Vault, Kubernetes Secrets eller hemmelighetshåndteringstjenester fra nettskytilbydere (f.eks. AWS Secrets Manager), for å sette inn hemmeligheter på en sikker måte under kjøring.

Bruk skrivebeskyttede filsystemer

Ved å gjøre filsystemet i en container skrivebeskyttet hindrer De applikasjoner i å skrive data til containerens disk. Dette øker sikkerheten ved å:

  • Forhindre manipulering: Angripere kan ikke endre applikasjonsfiler.
  • Begrense skadevare: Skadevare kan ikke enkelt bli værende eller spre seg.

Bruk volumer for data som må skrives eller bevares.

docker run --rm --read-only alpine:latest sh -c "echo 'Hello' > /tmp/test.txt || echo 'Error: Read-only filesystem!'"

Implementer helsesjekker

Dockers helsesjekker bekrefter at den containeriserte applikasjonen ikke bare kjører, men også svarer og er frisk. Dette er nyttig i produksjon fordi det gir:

  • Automatisk gjenoppretting: Docker kan starte ufriske containere på nytt.
  • Pålitelighet: Sørger for at bare friske instanser håndterer trafikk.
  • Bedre overvåking: Gir viktig innsikt i applikasjonens tilstand.

Sikkerhetssjekkpunkt

De skal rulle ut en ny webapplikasjon. Hvilken av de følgende sikkerhetspraksisene er viktigst for å hindre at en angriper får root-tilgang hvis applikasjonen blir kompromittert?

Oppsummering: Sikkerhet i produksjon

I denne leksjonen har vi gått gjennom viktige sikkerhets- og produksjonspraksiser for Docker. Husk å:

  • Skanne images etter sårbarheter.
  • Kjøre containere som brukere uten root-rettigheter.
  • Begrense containerressurser.
  • Sikre Docker-daemonen.
  • Isolere nettverk.
  • Administrere hemmeligheter eksternt.
  • Bruke skrivebeskyttede filsystemer.
  • Implementere helsesjekker.

Ved å ta i bruk disse praksisene skaper De et mer robust og sikkert produksjonsmiljø for Docker-applikasjonene Deres.

Gratis å komme i gang

Lær deg Docker og Kubernetes for utviklere 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
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Beste praksis for sikkerhet og produksjon» gratis?

Ja – hele teksten i «Beste praksis for sikkerhet og produksjon» 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 Docker og Kubernetes for utviklere-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Docker og Kubernetes for utviklere inneholder totalt 4 leksjoner.

Hva lærer jeg i «Beste praksis for sikkerhet og produksjon»?

Utforsk viktige sikkerhetshensyn og beste praksis for å kjøre Docker-containere i produksjonsmiljøer. Du øver på Docker og Kubernetes for utviklere 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 Docker og Kubernetes for utviklere?

Ingen tidligere erfaring er nødvendig. Docker og Kubernetes for utviklere 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 3 av 4.

Hvor lang tid tar leksjonen «Beste praksis for sikkerhet og produksjon»?

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 Docker og Kubernetes for utviklere-leksjonen?

Ja. Alle Docker og Kubernetes for utviklere-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. Containerisere en webapplikasjon
  2. Optimalisere Docker-images
  3. Beste praksis for sikkerhet og produksjon
  4. Flertrinnsbygging for slanke produksjonsimages
← Tilbake til Docker og Kubernetes for utviklere