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

77 lines
2.4 KiB
Markdown

# 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]]