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

1.5 KiB

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