Sicherer Zugriff auf das Kubernetes Dashboard
Als Junior DevOps Engineer optimieren Sie die Sicherheit Ihres Kubernetes-Clusters. Ihre Aufgabe ist es, ein Servicekonto mit eingeschränkten Rechten für das Kubernetes Dashboard zu konfigurieren, um den sicheren Umgang mit RBAC-Ressourcen zu demonstrieren.
Aufgaben
- Erstellen Sie ein neues Servicekonto mit dem Namen
read-only-user im Namespace kubernetes-dashboard unter Verwendung der bereitgestellten YAML-Datei.
- Erstellen Sie eine
ClusterRole mit Leseberechtigungen für den Standard-Namespace, die die Operationen get, list und watch für pods, services, nodes, namespaces und deployments erlaubt.
- Verknüpfen Sie die
ClusterRole mit dem neuen Servicekonto read-only-user.
- Generieren Sie ein Token für das Servicekonto zur Anmeldung am Dashboard.
Anforderungen
- Arbeiten Sie im Verzeichnis
~/project.
- Verwenden Sie den Namespace
kubernetes-dashboard für das Servicekonto.
- Erstellen Sie eine YAML-Datei mit dem Namen
read-only-dashboard-access.yaml.
- Das Servicekonto darf ausschließlich über Leseberechtigungen verfügen.
- Beschränken Sie den Zugriffsbereich auf den Namespace
default.
Inhalt der YAML-Datei:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: read-only-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: read-only-dashboard-role
rules:
- apiGroups: [""]
resources: ["pods", "services", "nodes", "namespaces", "deployments"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: read-only-dashboard-access
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: read-only-dashboard-role
subjects:
- kind: ServiceAccount
name: read-only-user
namespace: kubernetes-dashboard
Beispiele
Beispielhafte Ausgabe des Servicekonto-Tokens:
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...
Beispielhafte Dashboard-Ansicht nach dem Login:
- Sichtbar: Ressourcen im Namespace, Deployments, Pods
- Nicht sichtbar: Schaltflächen zum Erstellen, Bearbeiten oder Löschen
Hinweise
- Starten Sie Minikube und wenden Sie die Datei
recommended.yaml aus dem offiziellen Kubernetes Dashboard Repository an, um das Dashboard bereitzustellen.
- Verwenden Sie die Befehle
kubectl create und kubectl apply.
- Überprüfen Sie die Konfigurationen von ClusterRole und ClusterRoleBinding.
- Nutzen Sie
kubectl -n kubernetes-dashboard create token read-only-user, um das Token zu erzeugen.