Grundlæggende Docker og DevOps · Lektion

Netværkspolitikker og netværk med mindst mulige privilegier

Lås trafik mellem containere ned med netværkspolitikker, der som standard afviser alt, eksplicitte allow-regler og princippet om mindst mulige privilegier anvendt på netværk

Lektion 4 af 413 trin

Netværkspolitikker og netværk med mindst mulige privilegier er en gratis Grundlæggende Docker og DevOps-lektion på CoddyKit. Dette er lektion 4 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 Grundlæggende Docker og DevOps, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Åben som standard er risikabelt

Som standard kan containere i en klynge normalt kommunikere med alle andre containere. En kompromitteret pod kan derfor frit nå databaser og interne tjenester. Netværkspolitikker lukker den adgang.

Mindst mulige privilegier til netværk

Princippet om mindst mulige privilegier gælder også trafik: En tjeneste bør kun acceptere og oprette de forbindelser, den reelt har brug for – ikke mere.

Hvad er en netværkspolitik

En NetworkPolicy er et Kubernetes-objekt, der vælger podder efter etiket og angiver, hvilken indgående og udgående trafik der er tilladt. Et CNI-plugin (Calico, Cilium) håndhæver den.

Du skal bruge en CNI, der håndhæver reglerne

Ligesom Ingress skal bruge en styreenhed, skal NetworkPolicies bruge en CNI, der understøtter dem. På et CNI-plugin, der ignorerer dem, har reglerne ingen effekt.

Afvis indgående trafik som standard

Begynd med at afvise al indgående trafik til et navneområde, og åbn derefter kun det, du har brug for. En tom podSelector matcher alle podder.

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

Tillad specifik trafik

Tillad nu kun podder fra brugerfladen at nå API'et på port 8080. Alt andet forbliver blokeret.

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

Begræns udgående trafik

Du kan også begrænse udgående trafik, f.eks. tillade en pod kun at nå databasen, så en kapret pod forhindres i at kontakte en ekstern server.

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

Selektorer for navneområder

Regler kan matche med namespaceSelector, så trafik på tværs af navneområder kun tillades fra betroede navneområder – nyttigt for delte platformstjenester.

from:
- namespaceSelector:
    matchLabels:
      team: platform

Tillad DNS

En almindelig faldgrube: En streng afvisning af udgående trafik som standard blokerer også DNS og ødelægger navneopslag. Husk at tillade UDP/TCP 53 til kube-dns.

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

Ud over Kubernetes

Docker-brugere får en lignende fordel med brugerdefinerede netværk: Kun containere på det samme netværk kan nå hinanden, så urelaterede apps isoleres.

docker network create --internal backend

Nultillidstankegang

Netværk med mindst mulige privilegier fører dig mod nultillid: Antag, at netværket er fjendtligt, godkend og autorisér hver forbindelse, og tillad intet som standard.

Hurtigt tjek

Hvad er en fornuftig startsstrategi for netværkspolitikker?

Opsamling

Du kan nu begrænse trafik sikkert:

  • Anvend afvisning som standard, og tilføj derefter eksplicitte tilladelsesregler
  • Kontrollér både indgående og udgående trafik efter etiket/navneområde
  • Husk at tillade DNS; en CNI, der håndhæver reglerne, er nødvendig
  • Interne Docker-netværk giver en lignende isolation

Netværk med mindst mulige privilegier begrænser skadeomfanget ved et eventuelt sikkerhedsbrud.

Gratis at komme i gang

Lær Grundlæggende Docker og DevOps 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
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Netværkspolitikker og netværk med mindst mulige privilegier” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende Docker og DevOps, inklusive “Netværkspolitikker og netværk med mindst mulige privilegier”, 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. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Netværkspolitikker og netværk med mindst mulige privilegier”?

Lås trafik mellem containere ned med netværkspolitikker, der som standard afviser alt, eksplicitte allow-regler og princippet om mindst mulige privilegier anvendt på netværk Du øver dig i Grundlæggende Docker og DevOps 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å Grundlæggende Docker og DevOps?

Der kræves ingen tidligere erfaring. Grundlæggende Docker og DevOps 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 4 af 4.

Hvor lang tid tager lektionen “Netværkspolitikker og netværk med mindst mulige privilegier”?

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 Grundlæggende Docker og DevOps-lektion?

Ja. Alle Grundlæggende Docker og DevOps-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 Grundlæggende Docker og DevOps