Sobes.tech
Middle+

Jakie praktyki znasz, aby zwiększyć bezpieczeństwo aplikacji w Kubernetes?

sobes.tech AI

Odpowiedź od AI

  • Użycie polityk sieciowych do kontrolowania ruchu między podami.
  • Zastosowanie kwot zasobów i zakresów limitów do ograniczenia zużycia zasobów przez pody.
  • Wyłączenie trybu uprzywilejowanego dla kontenerów.
  • Minimalizacja uprawnień przyznawanych kontom usługowym.
  • Użycie sekretów do przechowywania poufnych danych.
  • Regularne skanowanie obrazów kontenerów pod kątem podatności.
  • Zastosowanie ograniczeń kontekstu bezpieczeństwa (SCC) w OpenShift lub polityk bezpieczeństwa podów (PSP) (przestarzałe) / standardów bezpieczeństwa podów w czystym Kubernetes.
  • Użycie narzędzi do audytu klastra, takich jak Kubesec lub OpenSCAP.
  • Wdrażanie zasady najmniejszych przywilejów na poziomie klastra i aplikacji.
  • Segmentacja podów i przestrzeni nazw.
  • Użycie niezmienności dla wdrożeń.

Przykład użycia polityki sieciowej:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend-to-backend
spec:
  podSelector:
    matchLabels:
      app: backend # Dotyczy tylko podów z tym etykietą
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend # Zezwala na ruch przychodzący tylko z podów frontend
    ports:
    - protocol: TCP
      port: 8080 # Zezwala na ruch tylko na tym porcie

Przykład użycia kontekstu bezpieczeństwa:

apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  securityContext:
    runAsUser: 1000 # Uruchom kontener jako użytkownik z ID 1000
    runAsGroup: 3000 # Uruchom kontener jako grupa z ID 3000
    fsGroup: 2000 # System plików będzie należał do grupy 2000
  containers:
  - name: sec-ctx-demo
    image: busybox
    command: [ "sh", "-c", "sleep 1h" ]
    securityContext:
      allowPrivilegeEscalation: false # Zabrania eskalacji przywilejów
      readOnlyRootFilesystem: true # Ustawia system plików główny jako tylko do odczytu