Intensiv DevOps-uddannelse · Lektion

Containersikkerhed under kørsel

Implementer bedste praksis for sikring af containere under kørsel, herunder brugerrettigheder og ressourcebegrænsninger.

Lektion 2 af 412 trin

Containersikkerhed under kørsel er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Grundlæggende sikkerhed under kørsel

Velkommen til sikkerhed for containere under kørsel! Det er afgørende at bygge sikre images, men hvad sker der, når din container kører?

Denne lektion fokuserer på bedste praksis for at beskytte dine applikationer, mens de er aktive, og begrænse mulige skader fra sårbarheder eller angreb.

Containersikkerhed under kørsel — illustration 1

Princippet om mindst mulige rettigheder

Et grundlæggende sikkerhedskoncept er princippet om mindst mulige rettigheder. Det betyder, at en enhed (f.eks. en container eller bruger) kun får de tilladelser, der er absolut nødvendige for at udføre sin funktion, og ikke flere.

Det reducerer angrebsfladen og begrænser konsekvenserne, hvis en container bliver kompromitteret.

Undgå at køre som root

Som standard kører processer i en Docker-container som brugeren root, der har fulde administrative rettigheder i containeren.

  • Risiko: Hvis en angriber får kontrol over en container med root-rettigheder, kan vedkommende muligvis udnytte sårbarheder i Docker-dæmonen eller kernen til at få root-adgang på værtssystemet.
  • Bedste praksis: Kør altid dine containerprocesser som en bruger, der ikke er root.

Kør som en bruger, der ikke er root

Du kan angive en bruger (med navn eller UID) til din containerproces ved hjælp af flaget --user sammen med docker run. Her kører vi kommandoen id i en Alpine-container som bruger 1000.

Hvis bruger 1000 ikke findes, bruger Docker stadig dette UID.

docker run --rm -it --user 1000 alpine id

Forstå Linux-funktioner

Traditionelle Linux-systemer har en root-bruger, hvor det er alt eller intet. Linux-funktioner opdeler root-brugerens kraftfulde rettigheder i mindre, adskilte enheder.

Det gør det muligt for en proces kun at have de specifikke root-lignende beføjelser, den har brug for (f.eks. binding til lave porte og rå netværksadgang), uden at have fulde root-rettigheder.

Fjern unødvendige funktioner

Docker-containere kører som standard med et stort sæt funktioner. Du kan fjerne unødvendige funktioner ved hjælp af --cap-drop for yderligere at begrænse, hvad en container kan gøre.

Her fjerner vi funktionen NET_RAW. Kommandoen ping, som kræver NET_RAW, vil derefter mislykkes, hvilket viser begrænsningen.

docker run --rm -it --cap-drop=NET_RAW alpine ping -c 1 localhost || echo "Ping failed: NET_RAW capability dropped!"

Styr containerressourcer

Containere deler værtens kerne og ressourcer. Ukontrolleret ressourceforbrug fra én container kan føre til et denial-of-service-angreb (DoS) mod andre containere eller selve værten.

  • CPU-begrænsninger: Forhindrer en container i at beslaglægge CPU-cyklusserne.
  • Hukommelsesbegrænsninger: Forhindrer en container i at bruge al tilgængelig RAM og dermed skabe ustabilitet i systemet.

Implementer ressourcebegrænsninger

Du kan angive begrænsninger for CPU og hukommelse direkte med docker run. Dette eksempel begrænser hukommelsen til 128 MB og CPU-forbruget til 0,5 (halvdelen af én CPU-kerne).

Det sikrer, at din container opfører sig korrekt og ikke udsulter andre processer.

docker run --rm -it --memory="128m" --cpus="0.5" alpine sh -c "echo 'Container running with limited resources.' && free -h"

Skrivebeskyttede filsystemer

Mange applikationer behøver ikke at skrive til deres rodfilsystem efter opstart. Ved at gøre filsystemet skrivebeskyttet opnår du betydelige sikkerhedsfordele:

  • Forhindrer manipulation: En angriber kan ikke ændre eksisterende filer eller skrive nye, skadelige filer.
  • Begrænser vedvarende ændringer: Alle ændringer er midlertidige og går tabt, når containeren genstartes.
  • Håndhæver uforanderlighed: Fremmer et design, hvor containere kan kasseres, og konfigurationen er ekstern.

Udrul skrivebeskyttede containere

Brug flaget --read-only, når du kører en container. Ethvert forsøg på at skrive til containerens filsystem (bortset fra specifikt monterede diskenheder) vil mislykkes.

Prøv at oprette en fil i denne skrivebeskyttede container:

docker run --rm -it --read-only alpine sh -c "touch /test.txt || echo 'Error: Cannot write to read-only filesystem!'"

Kontrol af sikkerhed under kørsel

Hvilke af følgende er gode metoder til at sikre containere under kørsel?

Opsummering af sikkerhed under kørsel

Godt klaret! Du har lært, hvordan du forbedrer containersikkerheden, mens containerne kører:

  • Mindst mulige rettigheder: Tildel kun de nødvendige tilladelser.
  • Brugere, der ikke er root: Undgå at køre processer som root.
  • Funktioner: Fjern unødvendige Linux-funktioner.
  • Ressourcebegrænsninger: Styr CPU- og hukommelsesforbruget.
  • Skrivebeskyttet: Gør filsystemer uforanderlige for at forhindre skrivning.

Disse metoder reducerer angrebsfladen og konsekvenserne af mulige kompromitteringer betydeligt. Bliv ved med at øve dig!

Gratis at komme i gang

Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
142
Lektioner
568

Ofte stillede spørgsmål

Er lektionen “Containersikkerhed under kørsel” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Containersikkerhed under kørsel”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Containersikkerhed under kørsel”?

Implementer bedste praksis for sikring af containere under kørsel, herunder brugerrettigheder og ressourcebegrænsninger. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?

Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Containersikkerhed under kørsel”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?

Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Sikkerhedsscanning af containerimages
  2. Containersikkerhed under kørsel
  3. Håndtering af Secrets og RBAC
  4. Netværkspolitikker og netværk med mindst mulige privilegier
← Tilbage til Intensiv DevOps-uddannelse