Einführung
In dieser Herausforderung verbessern Sie die Sicherheit Ihres Kubernetes-Clusters, indem Sie ein schreibgeschütztes Servicekonto für das Kubernetes Dashboard einrichten. Dabei stellen Sie Ihr Verständnis der rollenbasierten Zugriffskontrolle (RBAC) unter Beweis. Sie erstellen ein neues Servicekonto, eine ClusterRole mit Leseberechtigungen und verknüpfen diese ClusterRole mit dem Servicekonto. Abschließend generieren Sie ein Token, mit dem sich das Servicekonto am Dashboard anmelden kann.
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-userim Namespacekubernetes-dashboardunter Verwendung der bereitgestellten YAML-Datei. - Erstellen Sie eine
ClusterRolemit Leseberechtigungen für den Standard-Namespace, die die Operationenget,listundwatchfürpods,services,nodes,namespacesunddeploymentserlaubt. - Verknüpfen Sie die
ClusterRolemit dem neuen Servicekontoread-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-dashboardfü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.yamlaus dem offiziellen Kubernetes Dashboard Repository an, um das Dashboard bereitzustellen. - Verwenden Sie die Befehle
kubectl createundkubectl 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.
Zusammenfassung
Zusammenfassend hat diese Herausforderung von Ihnen verlangt, die Sicherheit Ihres Kubernetes-Clusters durch die Einrichtung eines schreibgeschützten Servicekontos für das Dashboard zu erhöhen. Sie haben ein Servicekonto und eine ClusterRole mit Leserechten erstellt und beide miteinander verknüpft. Durch das Generieren eines Tokens haben Sie schließlich einen sicheren Zugangsweg für die Dashboard-Anmeldung geschaffen.


