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: jan@company.com
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.