Sicherer Zugriff auf das Kubernetes Dashboard

KubernetesBeginner
Jetzt üben

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-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.
✨ Lösung prüfen und üben

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.