Sicheren Zugang zum Kubernetes Dashboard gewährleisten
Als Junior DevOps-Engineer werden Sie die Sicherheit Ihres Kubernetes-Clusters verbessern, indem Sie ein schreibgeschütztes Servicekonto (ServiceAccount) für das Kubernetes Dashboard erstellen. Dies zeigt, dass Sie das Prinzip der rollenbasierten Zugangskontrolle (Role-Based Access Control, RBAC) verstehen.
Aufgaben
- Erstellen Sie ein neues Servicekonto mit dem Namen
read-only-user
im Namespace kubernetes-dashboard
mithilfe der bereitgestellten YAML-Datei.
- Erstellen Sie eine
ClusterRole
mit schreibgeschützten Berechtigungen für den Standard-Namespace (default namespace), die get
-, list
- und watch
-Operationen für Pods
, Services
, Nodes
, Namespaces
und Deployments
erlaubt.
- Binden Sie die
ClusterRole
an das neue Servicekonto mit dem Namen read-only-user
.
- Generieren Sie ein Token für das Servicekonto, das Sie für die Anmeldung am Dashboard verwenden können.
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 sollte nur Lese-Berechtigungen haben.
- Begrenzen Sie den Zugriff auf den
default
-Namespace.
Geben Sie den Inhalt der YAML-Datei an:
---
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
Beispielausgabe eines Servicekonto-Tokens:
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...
Beispielansicht des Dashboards nach der Anmeldung:
- Sichtbar: Namespace-Ressourcen, Deployments, Pods
- Nicht sichtbar: Erstellen, Bearbeiten, Löschen von Operationen
Tipps
- 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
.
- Verwenden Sie
kubectl -n kubernetes-dashboard create token read-only-user
, um das Token zu generieren.