Middle+
Aké praktiky poznáte na zvýšenie bezpečnosti aplikácie v Kubernetes?
sobes.tech AI
Odpoveď od AI
- Použitie sieťových politík na kontrolu prevádzky medzi podmi.
- Uplatnenie kvót zdrojov a rozsahov limitov na obmedzenie spotreby zdrojov podmi.
- Vypnutie privilegovaného režimu pre kontajnery.
- Minimalizácia privilégií pridelených službovým účtom.
- Použitie tajných kľúčov na uloženie citlivých údajov.
- Pravidelné skenovanie obrazov kontajnerov na zraniteľnosti.
- Uplatnenie obmedzení bezpečnostného kontextu (SCC) v OpenShift alebo politík bezpečnosti podov (PSP) (zastaralé) / štandardov bezpečnosti podov v čistom Kubernetes.
- Použitie nástrojov na auditovanie klastru, ako je Kubesec alebo OpenSCAP.
- Implementácia princípu minimálnych privilégií na úrovni klastru a aplikácií.
- Segmentácia podov a priestorov mien.
- Použitie nemennosti pre nasadenia.
Príklad použitia siete politiky:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-to-backend
spec:
podSelector:
matchLabels:
app: backend # Platí iba pre pody s touto etiketou
ingress:
- from:
- podSelector:
matchLabels:
app: frontend # Povolenie vstupného prenosu iba z frontend podov
ports:
- protocol: TCP
port: 8080 # Povolenie prenosu iba na tomto porte
Príklad použitia bezpečnostného kontextu:
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000 # Spustenie kontajnera ako používateľ s ID 1000
runAsGroup: 3000 # Spustenie kontajnera ako skupina s ID 3000
fsGroup: 2000 # Súborový systém bude patriť skupine 2000
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
securityContext:
allowPrivilegeEscalation: false # Zakázať eskaláciu privilégií
readOnlyRootFilesystem: true # Urobiť koreňový súborový systém iba na čítanie