Vývoj aplikací a služeb v prostředí kontejnerizace vyžaduje efektivní správu přístupů a oprávnění. Zásady přístupu na základě rolí (Role-Based Access Control, RBAC) v Kubernetes nabízí flexibilní a bezpečný způsob, jak řídit, kdo může co dělat v rámci Kubernetes clusteru. Tento článek poskytuje podrobný návod na implementaci a správu RBAC na CentOS 7.
Předpoklady
Před zahájením je důležité mít:
- Nainstalovaný CentOS 7.
- Nainstalovaný a konfigurovaný Kubernetes cluster.
- Přístup k clusteru s administrátorskými právy.
Instalace a konfigurace
1. Aktualizace systému a instalace potřebných balíčků
Nejdříve aktualizujte systém a nainstalujte potřebné balíčky pomocí následujících příkazů:
sudo yum update -y
sudo yum install -y kubelet kubeadm kubectl
2. Povolení RBAC na Kubernetes clusteru
Pro povolení RBAC na vašem Kubernetes clusteru, ujistěte se, že API server je spuštěn s parametrem --authorization-mode=RBAC
. Toto nastavení obvykle najdete v konfiguračním souboru API serveru, který je umístěn na master nodu v /etc/kubernetes/manifests/kube-apiserver.yaml
.
Konfigurace RBAC
1. Vytvoření uživatelských rolí
Role definují, co mohou uživatelé dělat. Pro vytvoření role použijte manifest s definicí oprávnění. Například, pro vytvoření role pod-reader
, která umožňuje čtení informací o pods, vytvořte soubor pod-reader-role.yaml
s následujícím obsahem:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
Aplikujte tento manifest pomocí příkazu kubectl apply -f pod-reader-role.yaml
.
2. Přiřazení rolí uživatelům
Po vytvoření role ji musíte přiřadit konkrétním uživatelům nebo skupinám. Pro to využijte RoleBinding. Například, pro přiřazení pod-reader
role uživateli jan.novak
vytvořte soubor pod-reader-rolebinding.yaml
:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-pods
namespace: default
subjects:
- kind: User
name: jan.novak
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
Aplikujte tento manifest pomocí příkazu kubectl apply -f pod-reader-rolebinding.yaml
.
3. Správa a dohled
Monitoring a auditing
Pro zajištění bezpečnosti a správného fungování RBAC je důležité monitorovat a auditovat všechny akce spojené s RBAC. Kubernetes poskytuje nástroje jako kube-apiserver
logy pro auditing. Dále je možné použít externí nástroje pro vizualizaci a analýzu audit logů.
Aktualizace a údržba
Pravidelně aktualizujte role a RoleBindings podle změn ve vašich aplikacích a týmech. Ujistěte se, že oprávnění jsou stále přizpůsobena minimální nutné úrovni pro dané úlohy.
Implementace a správa RBAC v Kubernetes na CentOS 7 vyžaduje pečlivé plánování a správné nastavení. S náležitým přístupem můžete zvýšit bezpečnost vašeho Kubernetes clusteru a zajistit, že každý uživatel nebo služba má přesně ta oprávnění, která potřebuje k plnění svých úloh.