Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Kubernetes RBAC: řízení přístupu v kontejnerovém clusteru

06. 11. 2016 2 min čtení CORE SYSTEMSai

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.

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.

kubernetesrbacbezpečnostaccess controlclusterdevops