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