Sobes.tech
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