Containersikkerhet under kjøring
Ta i bruk beste praksis for å sikre containere under kjøring, blant annet når det gjelder brukerrettigheter og ressursgrenser.
Containersikkerhet under kjøring er en gratis leksjon i Grunnleggende Docker og DevOps på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Grunnleggende Docker og DevOps, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende Docker og DevOps inneholder totalt 4 leksjoner.
Grunnleggende kjøretidssikkerhet
Velkommen til sikkerhet for containere under kjøring! Det er avgjørende å bygge sikre images, men hva skjer når containeren kjører?
Denne leksjonen fokuserer på beste praksis for å beskytte applikasjonene dine mens de er aktive og begrense potensiell skade fra sårbarheter eller angrep.

Prinsippet om minste privilegium
Et grunnleggende sikkerhetskonsept er prinsippet om minste privilegium. Det innebærer å gi en entitet (for eksempel en container eller bruker) bare de tillatelsene som er helt nødvendige for å utføre oppgaven sin, og ikke mer.
Dette reduserer angrepsflaten og begrenser konsekvensene dersom en container blir kompromittert.
Unngå å kjøre som root
Som standard kjører prosesser inne i en Docker-container som brukeren root, som har fullstendige administrative rettigheter i containeren.
- Risiko: Hvis en angriper får kontroll over en container med root-rettigheter, kan angriperen potensielt utnytte sårbarheter i Docker-daemonen eller kjernen for å få root-tilgang på vertssystemet.
- Beste praksis: Kjør alltid containerprosessene som en ikke-root-bruker.
Kjør som en ikke-root-bruker
Du kan angi en bruker (med navn eller UID) for containerprosessen ved å bruke flagget --user sammen med docker run. Her kjører vi kommandoen id i en Alpine-container som bruker 1000.
Hvis bruker 1000 ikke finnes, bruker Docker likevel denne UID-en.
docker run --rm -it --user 1000 alpine idForstå Linux capabilities
Tradisjonelle Linux-systemer har en root-bruker med «alt eller ingenting»-tilgang. Linux Capabilities deler opp de kraftige root-rettighetene i mindre, separate enheter.
Dette gjør at en prosess bare kan få de spesifikke root-lignende rettighetene den trenger (for eksempel å binde til lave porter eller få rå nettverkstilgang), uten å ha full root-tilgang.
Fjern unødvendige capabilities
Docker-containere kjører som standard med et stort sett capabilities. Du kan fjerne unødvendige capabilities ved hjelp av --cap-drop for å begrense hva en container kan gjøre ytterligere.
Her fjerner vi capability-en NET_RAW. Kommandoen ping, som krever NET_RAW, vil da mislykkes og demonstrere begrensningen.
docker run --rm -it --cap-drop=NET_RAW alpine ping -c 1 localhost || echo "Ping failed: NET_RAW capability dropped!"Kontroller containerressurser
Containere deler vertens kjerne og ressurser. Ukontrollert ressursbruk i én container kan føre til et Denial of Service-angrep (DoS) mot andre containere eller selve verten.
- CPU-begrensninger: Hindrer en container i å beslaglegge alle CPU-syklusene.
- Minnebegrensninger: Hindrer en container i å bruke opp all tilgjengelig RAM, noe som kan føre til ustabilitet i systemet.
Implementer ressursbegrensninger
Du kan sette grenser for CPU og minne direkte med docker run. Dette eksempelet begrenser minnet til 128MB og CPU-bruken til 0.5 (halvparten av én CPU-kjerne).
Dette sørger for at containeren oppfører seg riktig og ikke sulter ut andre prosesser for ressurser.
docker run --rm -it --memory="128m" --cpus="0.5" alpine sh -c "echo 'Container running with limited resources.' && free -h"Skrivebeskyttede filsystemer
Mange applikasjoner trenger ikke å skrive til rotfilsystemet etter oppstart. Ved å gjøre filsystemet skrivebeskyttet oppnår du betydelige sikkerhetsfordeler:
- Forhindrer manipulering: En angriper kan ikke endre eksisterende filer eller skrive nye, skadelige filer.
- Begrenser varighet: Alle endringer er midlertidige og går tapt når containeren startes på nytt.
- Håndhever uforanderlighet: Fremmer en utforming der containere kan kastes og konfigurasjonen er ekstern.
Ta i bruk skrivebeskyttede containere
Bruk flagget --read-only når du kjører en container. Alle forsøk på å skrive til containerens filsystem (bortsett fra eksplisitt monterte volumer) vil mislykkes.
Prøv å opprette en fil i denne skrivebeskyttede containeren:
docker run --rm -it --read-only alpine sh -c "touch /test.txt || echo 'Error: Cannot write to read-only filesystem!'"Kontroll av kjøretidssikkerhet
Hvilke av følgende er gode praksiser for å sikre containere under kjøring?
Oppsummering av kjøretidssikkerhet
Godt jobbet! Du har lært hvordan du kan styrke sikkerheten for containere mens de kjører:
- Minste privilegium: Gi bare nødvendige tillatelser.
- Ikke-root-brukere: Unngå å kjøre prosesser som
root. - Capabilities: Fjern unødvendige Linux-capabilities.
- Ressursbegrensninger: Kontroller CPU- og minnebruken.
- Skrivebeskyttet: Gjør filsystemer uforanderlige for å hindre skriving.
Disse praksisene reduserer angrepsflaten og konsekvensene av potensielle kompromitteringer betydelig. Fortsett å øve!
Lær deg Grunnleggende Docker og DevOps 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 «Containersikkerhet under kjøring» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende Docker og DevOps, inkludert «Containersikkerhet under kjøring», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Grunnleggende Docker og DevOps inneholder totalt 4 leksjoner.
Hva lærer jeg i «Containersikkerhet under kjøring»?
Ta i bruk beste praksis for å sikre containere under kjøring, blant annet når det gjelder brukerrettigheter og ressursgrenser. Du øver på Grunnleggende Docker og DevOps 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 Grunnleggende Docker og DevOps?
Ingen tidligere erfaring er nødvendig. Grunnleggende Docker og DevOps 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 2 av 4.
Hvor lang tid tar leksjonen «Containersikkerhet under kjøring»?
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 Grunnleggende Docker og DevOps-leksjonen?
Ja. Alle Grunnleggende Docker og DevOps-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
- Sikkerhetsskanning av containerbilder
- Containersikkerhet under kjøring
- Håndtering av Secrets og RBAC
- Nettverkspolicyer og nettverk med minste privilegium