# 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 ```yaml 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**: ```go 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]]