Files
obsidian-sympozium/08-Słownik-K8s/SecurityContext.md
2026-03-25 00:05:57 +01:00

2.4 KiB

SecurityContext

#kubernetes #security #słownik

Co to jest?

SecurityContext to konfiguracja bezpieczeństwa na poziomie poda lub kontenera. Definiuje jak kontener jest uruchamiany z perspektywy systemu operacyjnego.

Kluczowe pola

securityContext:
  runAsNonRoot: true              # Nie uruchamiaj jako root
  runAsUser: 1000                 # UID procesu
  runAsGroup: 1000                # GID procesu
  readOnlyRootFilesystem: true    # Root FS tylko do odczytu
  allowPrivilegeEscalation: false # Blokuj setuid/setgid
  capabilities:
    drop: ["ALL"]                 # Usuń WSZYSTKIE Linux capabilities
    add: ["NET_BIND_SERVICE"]     # Dodaj konkretne (opcjonalnie)
  seccompProfile:
    type: RuntimeDefault          # Seccomp profil

Pola wyjaśnione

runAsNonRoot

Wymusza uruchomienie kontenera jako użytkownik inny niż root (UID != 0). Jeśli obraz ma USER root, pod nie wystartuje.

readOnlyRootFilesystem

System plików kontenera jest read-only. Kontener może pisać tylko do zamontowanych woluminów (/tmp, /workspace). Zapobiega modyfikacji binariów.

capabilities

Linux capabilities to granularne uprawnienia (zamiast "all-or-nothing" root):

Capability Opis
CAP_NET_ADMIN Konfiguracja sieci
CAP_SYS_ADMIN Operacje administracyjne
CAP_NET_BIND_SERVICE Bindowanie portów < 1024
ALL Wszystkie naraz

drop: ["ALL"] usuwa WSZYSTKIE capabilities - kontener ma minimalne uprawnienia.

seccompProfile

Seccomp (Secure Computing Mode) filtruje syscalls na poziomie kernela:

  • RuntimeDefault - profil domyślny containerd (blokuje niebezpieczne syscalls)
  • Unconfined - brak filtrowania
  • Localhost - custom profil z pliku

allowPrivilegeEscalation

Blokuje mechanizmy eskalacji uprawnień:

  • setuid/setgid bity na plikach
  • no_new_privs flag w kernelu

Użycie w Sympozium

Agent containers mają hardened SecurityContext:

SecurityContext: &corev1.SecurityContext{
    ReadOnlyRootFilesystem:   true,
    AllowPrivilegeEscalation: false,
    Capabilities: &corev1.Capabilities{
        Drop: []corev1.Capability{"ALL"},
    },
}

W połączeniu z NetworkPolicy i RBAC, tworzy to defense-in-depth.

Więcej: Model bezpieczeństwa Defence-in-Depth | Cykl życia Agent Pod


Powiązane: Model bezpieczeństwa Defence-in-Depth | gVisor | Kata Containers | Pod