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.
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:
- IngressTillå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: 8080Begrä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: dbNamespace-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: platformTillå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: 53Bortom 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 backendEtt 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.
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
- Säkerhetsskanning av containeravbildningar
- Containersäkerhet under körning
- Secrets-hantering och RBAC
- Nätverkspolicyer och nätverk med minsta privilegium