initial commit
This commit is contained in:
49
08-Słownik-K8s/ServiceAccount.md
Normal file
49
08-Słownik-K8s/ServiceAccount.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 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]]
|
||||
Reference in New Issue
Block a user