50 lines
1.5 KiB
Markdown
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]]
|