Middle+
Kokias praktikas žinote, kad pagerintumėte programos saugumą Kubernetes?
sobes.tech AI
Atsakymas iš AI
- Naudoti tinklo politiką srautui tarp podų valdymui.
- Taikyti resursų kvotas ir limitus, kad apriboti podų išteklių naudojimą.
- Išjungti privilegijuotą režimą konteineriams.
- Sumažinti suteikiamų teisių Service Accounts.
- Naudoti slaptažodžius jautrių duomenų saugojimui.
- Reguliariai tikrinti konteinerių vaizdus pažeidžiamumui.
- Taikyti Security Context Constraints (SCC) OpenShift arba Pod Security Policies (PSP) (pasenusi) / Pod Security Standards Kubernetes.
- Naudoti klasterio audito įrankius, tokius kaip Kubesec ar OpenSCAP.
- Diegti minimalios teisių principą klasteryje ir programose.
- Segmentuoti podus ir vardų erdves.
- Naudoti nekintamumo principą diegimuose.
Pavyzdys, kaip naudoti tinklo politiką:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-to-backend
spec:
podSelector:
matchLabels:
app: backend # Taikoma tik podams su šiuo žymeniu
ingress:
- from:
- podSelector:
matchLabels:
app: frontend # Leidžia įeinantį srautą tik iš frontend podų
ports:
- protocol: TCP
port: 8080 # Leidžia srautą tik į šį prievadą
Pavyzdys, kaip naudoti saugumo kontekstą:
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000 # Paleisti konteinerį naudotoju su ID 1000
runAsGroup: 3000 # Paleisti konteinerį su grupe ID 3000
fsGroup: 2000 # Failų sistema priklausys grupei 2000
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
securityContext:
allowPrivilegeEscalation: false # Užkirsti kelią privilegijų didinimui
readOnlyRootFilesystem: true # Padaryti šaknų failų sistemą tik skaitymo