Zero-Trust für Kubernetes-Cluster und Anwendungen mit Teleport
Voraussetzungen
Bevor wir starten, sollten folgende Dinge vorhanden sein:
- Teleport Cloud Account: Falls noch nicht geschehen, richten Sie sich einen Teleport-Cloud-Zugang ein.
- Kind: Installieren Sie Kind, um einen lokalen Kubernetes-Cluster aufzusetzen.
- Helm: Stellen Sie sicher, dass Helm installiert ist, um Anwendungen auf Kubernetes zu deployen.
- kubectl: Installieren Sie kubectl, um mit Ihrem Kubernetes-Cluster zu interagieren.
- tsh (Teleport CLI): Installieren Sie
tshfür die Authentifizierung und den Cluster-Zugriff.
Schritt 1: Einen Kind-Kubernetes-Cluster aufsetzen
Zunächst erzeugen wir einen lokalen Kubernetes-Cluster mit Kind:
kind create cluster --name teleport-demo
Dieser Befehl initialisiert einen Kubernetes-Cluster mit dem Namen teleport-demo.
Schritt 2: Den Teleport Kubernetes Agent deployen
Der Teleport Kubernetes Agent stellt die Verbindung zwischen Ihrem Kubernetes-Cluster und der Teleport Cloud her. Wir deployen ihn mit Helm.
-
Teleport Helm Repository hinzufügen:
helm repo add teleport https://charts.releases.teleport.dev -
Helm Repository aktualisieren:
helm repo update -
Teleport Kubernetes Agent installieren:
Legen Sie eine
values.yamlmit folgender Konfiguration an:proxyAddr: "your-account.teleport.sh:443" authToken: "your-teleport-auth-token" kubeClusterName: "teleport-demo" discover: - namespace: "default"Ersetzen Sie
your-account.teleport.sh:443durch die Proxy-Adresse Ihrer Teleport Cloud undyour-teleport-auth-tokendurch Ihren Teleport-Authentifizierungs-Token. Das Felddiscoverlegt fest, in welchen Namespaces die Application Autodiscovery arbeiten soll.Deployen Sie anschließend den Agent:
helm install teleport-kube-agent teleport/teleport-kube-agent -f values.yamlDamit ist der Teleport Kubernetes Agent im Cluster installiert. Detaillierte Konfigurationsoptionen finden Sie in der Teleport Kubernetes Agent Helm Chart Reference.
Schritt 3: Authentifizierung am Kubernetes-Cluster über Teleport (tsh)
Sobald der Teleport Kubernetes Agent läuft, können wir uns mit tsh, dem Teleport-CLI, am Kubernetes-Cluster authentifizieren.
-
An Teleport Cloud anmelden:
tsh login --proxy=your-account.teleport.sh --user=your-teleport-usernameErsetzen Sie
your-account.teleport.shdurch die Proxy-Adresse Ihrer Teleport Cloud undyour-teleport-usernamedurch Ihren Teleport-Benutzernamen. -
Verfügbare Kubernetes-Cluster auflisten:
tsh kube lsDieser Befehl zeigt die bei Teleport registrierten Kubernetes-Cluster an.
-
Kubernetes-Cluster auswählen und authentifizieren:
tsh kube login teleport-demoDamit wird der Kubernetes-Authentifizierungskontext eingerichtet, sodass Sie den Cluster über
kubectlansprechen können. -
Zugriff auf Kubernetes prüfen:
kubectl get pods -ABei erfolgreicher Authentifizierung erscheint eine Liste der laufenden Pods in Ihrem Kubernetes-Cluster.
Schritt 4: Grafana auf Kubernetes deployen
Als Nächstes deployen wir Grafana über das offizielle Helm Chart.
-
Grafana Helm Repository hinzufügen:
helm repo add grafana https://grafana.github.io/helm-charts -
Helm Repository aktualisieren:
helm repo update -
Grafana installieren:
Legen Sie eine
grafana-values.yamlan, in der die JWT-Authentifizierung aktiviert wird:grafana.ini: auth.jwt: enabled: true header_name: X-Auth-Token email_claim: email jwk_set_url: https://your-teleport-domain/.well-known/jwks.json service: type: ClusterIPErsetzen Sie
https://your-teleport-domain/.well-known/jwks.jsondurch die URL des JSON Web Key Set Ihrer Teleport-Instanz. Anschließend installieren Sie Grafana:helm install grafana grafana/grafana -f grafana-values.yamlMit dieser Konfiguration authentifiziert Grafana Nutzer anhand von JWT-Tokens, die von Teleport ausgestellt werden.
Schritt 5: Grafana über die Teleport Application Autodiscovery bereitstellen
Da der Teleport Kubernetes Agent deployed und Grafana für JWT-Authentifizierung konfiguriert ist, kann Teleport Grafana automatisch als Anwendung erkennen und registrieren. Nutzer erreichen Grafana damit sicher über Teleport, ohne dass zusätzliche manuelle Konfiguration nötig wäre.
Weiterführende Informationen zur Application Autodiscovery unter Kubernetes finden Sie in der Teleport-Dokumentation.
Fazit
Durch die Integration von Teleport in Ihren Kubernetes-Cluster etablieren Sie ein Zero-Trust-Sicherheitsmodell, das sowohl Ihre Infrastruktur als auch die darauf laufenden Anwendungen wirksam schützt. Der Aufbau sichert nicht nur Zugriffe ab, sondern vereinfacht auch die Verwaltung von Authentifizierungs- und Autorisierungsrichtlinien über die gesamte Umgebung hinweg. Funktionen wie Application Autodiscovery und JWT-Authentifizierung nehmen der Absicherung von Anwendungen wie Grafana viel Aufwand ab und stellen sicher, dass nur autorisierte Nutzer auf sensible Dashboards und Daten zugreifen.
Damit setzen Sie die Prinzipien einer Zero-Trust-Sicherheitsarchitektur konsequent um und schaffen einen belastbaren Rahmen, um Ihre Kubernetes-Cluster und die darauf betriebenen Anwendungen zuverlässig zu schützen.
Offenlegung: Think Ahead Technologies ist offizieller Teleport Reseller und Support Partner. Dieser Artikel spiegelt unsere praktischen Erfahrungen aus dem Einsatz von Teleport bei Kundenprojekten und in internen Umgebungen wider.