Grunderna i Docker och DevOps · Lektion

Nätverkspolicyer och nätverk med minsta privilegium

Lås ned trafik mellan containrar med nätverkspolicyer som nekar allt som standard, uttryckliga tillåtelseregler och principen om minsta privilegium för nätverk.

Lektion 4 av 413 steg

Nätverkspolicyer och nätverk med minsta privilegium är en gratis lektion i Grunderna i Docker och DevOps på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Grunderna i Docker och DevOps, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Grunderna i Docker och DevOps innehåller totalt 4 lektioner.

Öppet som standard är riskabelt

Som standard kan containrar i ett kluster vanligtvis kommunicera med alla andra containrar. En komprometterad Pod kan då fritt nå databaser och interna Services. Nätverkspolicyer stänger den dörren.

Minsta privilegium för nätverk

Principen om minsta privilegium gäller även trafik: en Service ska bara acceptera och upprätta de anslutningar den verkligen behöver – inget mer.

Vad är en NetworkPolicy?

En NetworkPolicy är ett Kubernetes-objekt som väljer Pods med hjälp av labels och anger vilken inkommande och utgående trafik som tillåts. Ett CNI-plugin (Calico, Cilium) verkställer den.

Ni behöver ett verkställande CNI

Precis som Ingress behöver en controller behöver NetworkPolicies ett CNI som stöder dem. I ett plugin som ignorerar dem får reglerna ingen effekt, utan att det märks.

Förbjud inkommande trafik som standard

Börja med att neka all inkommande trafik till ett namespace och öppna sedan endast det som behövs. En tom podSelector matchar alla Pods.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-ingress
spec:
  podSelector: {}
  policyTypes:
  - Ingress

Tillåt specifik trafik

Tillåt nu endast frontend-Pods att nå API:t på port 8080. All annan trafik förblir blockerad.

spec:
  podSelector:
    matchLabels:
      app: api
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - port: 8080

Begränsa utgående trafik

Ni kan också begränsa utgående trafik, till exempel genom att tillåta en Pod att bara nå databasen och därmed hindra en kapad Pod från att kontakta angriparen.

spec:
  podSelector:
    matchLabels:
      app: api
  policyTypes:
  - Egress
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: db

Namespace-selectors

Regler kan matcha med namespaceSelector för att tillåta trafik mellan namespace endast från betrodda namespace – användbart för gemensamma plattformstjänster.

from:
- namespaceSelector:
    matchLabels:
      team: platform

Tillåt DNS

En vanlig fallgrop: strikt förbud mot utgående trafik som standard blockerar även DNS och förstör namnuppslagningen. Kom ihåg att tillåta UDP/TCP 53 till kube-dns.

egress:
- to: []
  ports:
  - protocol: UDP
    port: 53

Bortom Kubernetes

Docker-användare får en liknande fördel av användardefinierade nätverk: endast containrar i samma nätverk kan nå varandra, vilket isolerar orelaterade appar.

docker network create --internal backend

Ett zero trust-tankesätt

Nätverk med minsta privilegium för Er mot zero trust: utgå från att nätverket är fientligt, autentisera och auktorisera varje anslutning och tillåt inget som standard.

Snabbtest

Vilken är en förnuftig startstrategi för nätverkspolicyer?

Sammanfattning

Nu kan Ni begränsa trafik på ett säkert sätt:

  • Tillämpa förbud som standard och lägg sedan till explicita tillåtelseregler
  • Styr både inkommande och utgående trafik efter label/namespace
  • Kom ihåg att tillåta DNS; ett verkställande CNI krävs
  • Dockers interna nätverk ger liknande isolering

Nätverk med minsta privilegium minskar skadeomfattningen vid ett eventuellt intrång.

Gratis att börja

Lär dig Grunderna i Docker och DevOps med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Nätverkspolicyer och nätverk med minsta privilegium” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Grunderna i Docker och DevOps, inklusive ”Nätverkspolicyer och nätverk med minsta privilegium”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Grunderna i Docker och DevOps innehåller totalt 4 lektioner.

Vad lär jag mig i ”Nätverkspolicyer och nätverk med minsta privilegium”?

Lås ned trafik mellan containrar med nätverkspolicyer som nekar allt som standard, uttryckliga tillåtelseregler och principen om minsta privilegium för nätverk. Ni övar på Grunderna i Docker och DevOps med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Grunderna i Docker och DevOps?

Du behöver inga förkunskaper. Utbildningen i Grunderna i Docker och DevOps på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Nätverkspolicyer och nätverk med minsta privilegium”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Grunderna i Docker och DevOps-lektionen?

Ja. Varje Grunderna i Docker och DevOps-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Säkerhetsskanning av containeravbildningar
  2. Containersäkerhet under körning
  3. Secrets-hantering och RBAC
  4. Nätverkspolicyer och nätverk med minsta privilegium
← Tillbaka till Grunderna i Docker och DevOps