Kubernetes 1.6 přináší RBAC (Role-Based Access Control) — granulární řízení přístupu k API resources. Jak navrhnout bezpečnostní model pro multi-tenant cluster.
Proč RBAC v Kubernetes¶
Výchozí Kubernetes instalace nemá řízení přístupu — každý s přístupem k API může dělat cokoliv. V produkčním prostředí s více týmy je to nepřijatelné.
RBAC (Role-Based Access Control) umožňuje definovat kdo (subject) může dělat co (verb) s čím (resource). Granulární oprávnění na úrovni namespace nebo celého clusteru.
Role, ClusterRole a Bindings¶
RBAC model má čtyři objekty:
# Role - oprávnění v namespace
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: production
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods", "pods/log"]
verbs: ["get", "list", "watch"]
---
# RoleBinding - přiřazení role uživateli
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: production
subjects:
- kind: User
name: [email protected]
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
Role = oprávnění v namespace. ClusterRole = oprávnění across celý cluster. Binding = propojení role se subjektem.
Návrh RBAC modelu¶
Doporučený přístup pro enterprise:
- Cluster admin** — plný přístup (jen infrastrukturní tým)
- Namespace admin** — plný přístup v namespace týmu
- Developer** — deploy, view logs, exec do pods ve svém namespace
- Viewer** — read-only přístup pro monitoring a debugging
Princip nejmenších oprávnění — začněte s minimem a přidávejte podle potřeby. Auditujte oprávnění pravidelně.
Service Accounts a automatizace¶
Service Accounts jsou identity pro procesy (CI/CD, operátory, monitoring):
apiVersion: v1
kind: ServiceAccount
metadata:
name: ci-deployer
namespace: production
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: ci-deploy
namespace: production
subjects:
- kind: ServiceAccount
name: ci-deployer
namespace: production
roleRef:
kind: ClusterRole
name: admin
apiGroup: rbac.authorization.k8s.io
CI/CD pipeline používá service account token místo osobních credentials. Rotace tokenů a audit logování jsou best practices.
Závěr: bezpečnost jako first-class citizen¶
RBAC je nezbytný pro produkční Kubernetes clustery. Investujte čas do návrhu oprávněnového modelu dříve, než otevřete cluster více týmům. Princip nejmenších oprávnění, pravidelný audit a service accounts pro automatizaci jsou klíčové best practices.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns