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

50 lines
1.5 KiB
Markdown

# ServiceAccount
#kubernetes #security #rbac #słownik
## Co to jest?
**ServiceAccount** to tożsamość przypisana do podów w Kubernetes. Pody używają ServiceAccount do autentykacji wobec API servera i uzyskania uprawnień zdefiniowanych w [[RBAC]].
## Jak działa?
```
Pod → ServiceAccount → Token (auto-mounted) → K8s API Server
RoleBinding sprawdza:
"Czy ten SA ma Role z verbs?"
```
Token jest automatycznie montowany w podzie pod:
```
/var/run/secrets/kubernetes.io/serviceaccount/token
```
## Domyślne zachowanie
- Każdy namespace ma `default` ServiceAccount
- Pody bez jawnego SA używają `default`
- `default` SA ma minimalne uprawnienia (prawie żadne)
## Użycie w Sympozium
Controller tworzy **dedykowany ServiceAccount** `sympozium-agent` w namespace runu:
```
1. ensureAgentServiceAccount() → tworzy SA
2. Role/ClusterRole → definiuje uprawnienia (z SkillPack)
3. RoleBinding → wiąże SA z Role
4. Pod spec: serviceAccountName: sympozium-agent
5. Skill sidecar używa tokenu SA do kubectl/API calls
6. Po zakończeniu → SA i RBAC garbage-collected
```
Agent container **nie używa** tokenu SA (brak dostępu do K8s API).
Skill sidecar **używa** tokenu SA (kubectl via automounted token).
Więcej: [[RBAC]] | [[Efemeryczny RBAC per-run]] | [[Skill Sidecars i auto-RBAC]]
---
Powiązane: [[RBAC]] | [[Efemeryczny RBAC per-run]] | [[Pod]]