77 lines
2.4 KiB
Markdown
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]]
|