So entschlüsseln Sie Geheimnisse in Kubernetes

So Entschlusseln Sie Geheimnisse In Kubernetes



Kubernetes ist ein Open-Source-Container-Bereitstellungssystem, das containerisierte Anwendungen innerhalb des Kubernetes-Clusters ausführt. Bei der Anwendungsbereitstellung sind die Geheimnisse eine der wesentlichen Ressourcen von Kubernetes. Es wird zum Speichern kritischer oder vertraulicher Informationen wie Benutzernamen und Passwörter, API-Schlüssel, Zertifikate oder Token verwendet. Es erspart dem Benutzer die Bereitstellung kritischer Informationen im Code. Das Kubernetes-Geheimnis speichert Daten nicht direkt, sondern wandelt die Daten zunächst in eine andere Form um und speichert sie dann in der Kubernetes-Ressource.

Dieser Artikel soll Folgendes veranschaulichen:

Wie erstelle ich ein Kubernetes-Geheimnis?

In Kubernetes gibt es verschiedene Arten von Geheimnissen. Das generische Geheimnis wird zum Speichern allgemeiner Informationen wie Benutzeranmeldeinformationen und Tokens verwendet, das TLS-Geheimnis wird zum Speichern von TLS-Zertifikaten und -Schlüsseln verwendet und das Docker-Registrierungsgeheimnis speichert die Docker-Anmeldeinformationen.







Zur Demonstration erstellen wir in den folgenden Anweisungen ein generisches Geheimnis zum Speichern von Benutzername und Passwort.



Schritt 1: Cluster starten

Starten Sie zunächst den Kubernetes-Cluster. Nutzen Sie dazu einfach die „ minikube start ' Befehl:



minikube start -P Mehrknoten

Mit dem obigen Befehl starten wir unseren Minikube-Cluster mit mehreren Knoten:





Schritt 2: Anmeldeinformationsdatei erstellen

Erstellen Sie als Nächstes zwei Textdateien mit den Namen „Benutzername.txt“ und „Passwort.txt“, um den Benutzernamen bzw. das Passwort zu speichern.



Schritt 3: Geheimnis erstellen

Navigieren Sie als Nächstes zu dem Verzeichnis, in dem Sie Anmeldeinformationsdateien erstellt haben:

CD C:\Benutzer\Dell\Dokumente\Kubernetes\Secret

Erstellen Sie ein neues Geheimnis mit „ kubectl erstellt Geheimnis ' Befehl. Hier das ' -aus Datei Die Option „wird verwendet, um die geheimen Daten aus der Datei zu speichern:

kubectl erstellt geheimes generisches Demo-Geheimnis --aus Datei = Nutzername =Benutzername.txt --aus Datei = Passwort =passwort.txt

Schritt 4: Holen Sie sich das Geheimnis

Listen Sie zur Überprüfung das Geheimnis mit dem folgenden Befehl auf

Kubectl bekommt ein Geheimnis

Die Ausgabe zeigt an, dass ein neues Geheimnis erfolgreich erstellt wurde:

Wie entschlüssele ich ein Geheimnis in Kubernetes?

Manchmal müssen Benutzer die geheimen Informationen aus verschiedenen Gründen anzeigen, z. B. zu Debugging-Zwecken, zum Anzeigen von Anmeldeinformationen zur Bestätigung und vielem mehr. Um das entschlüsselte Geheimnis in Kubernetes zu erhalten, befolgen Sie die folgende Demonstration.

Schritt 1: Beschreiben Sie das Geheimnis

Der ' kubectl beschreiben ” zeigt die detaillierte Zusammenfassung der Kubernetes-Ressource an. Um die geheimen Details anzuzeigen, verwenden Sie die Schaltfläche „ kubectl beschreibt das Geheimnis ' Befehl:

kubectl beschreibt das geheime Demo-Geheimnis

Hier zeigt der obige Befehl die Größe der geheimen Daten nur in Bytes an, legt die geheimen Informationen jedoch nicht offen, wie unten gezeigt:

Schritt 2: Geheime Daten im Json-Format abrufen

Um die geheimen Daten im JSON-Format abzurufen, verwenden Sie den folgenden Befehl:

Kubectl erhält geheimes Demo-Geheimnis jsonpath = '{.Daten}'

Das folgende Ergebnis zeigt die in base64 codierten geheimen Daten:

Um das Geheimnis anzuzeigen, muss der Benutzer das Geheimnis entschlüsseln. Um das Geheimnis von Base64 in die reale Form zu entschlüsseln, benötigt der Benutzer ein Bash-Terminal, um den Bash-Befehl auszuführen. Um das Bash-Terminal zu installieren, folgen Sie den Anweisungen „ Fügen Sie Git Bash zum Windows-Terminal hinzu ” Artikel.

Schritt 3: Entschlüsseln Sie das Geheimnis

Um das Geheimnis zu entschlüsseln, starten Sie zunächst das „Git Bash“-Terminal. Führen Sie danach „ echo | base64 –dekodieren ' Befehl. Dieser Befehl kann direkt auf Linux- und Mac-Terminals ausgeführt werden:

Echo 'TGludXhoaW50' | base64 --dekodieren

Hier haben wir den Benutzernamen entschlüsselt:

Um das Passwort zu entschlüsseln, verwenden Sie „ echo | base64 –dekodieren ' Befehl:

Echo 'TGludXhoaW50QDEyMw==' | base64 --dekodieren

Wie erhalte ich mithilfe des View-Secret-Pakets ein entschlüsseltes Geheimnis?

Die Kubernetes-Benutzer können das Geheimnis mithilfe verschiedener Pakete entschlüsseln und „ Sichtgeheimnis „Paket ist eines davon, das über eines der von Kubernetes unterstützten Plugins installiert und einfach verwendet werden kann“ Blut “. So installieren und verwenden Sie „ Sichtgeheimnis ”-Paket, folgen Sie der folgenden Demonstration:

Voraussetzung: Krew-Plugin installieren

Das Krew-Plugin ist eines der Kubernetes-Plugins, mit dem verschiedene Pakete installiert werden können, um Kubernetes-Ressourcen zusätzliche Funktionen bereitzustellen. Führen Sie die folgenden Schritte aus, um krew auf dem System zu installieren.

Schritt 1: Laden Sie die Datei „krew.exe“ herunter

Navigieren Sie zunächst zum Beamten der krew-Releases Seite und laden Sie die Datei „krew.exe“ herunter:

————————————————————————————————————————-

Standardmäßig wird krew im Ordner „heruntergeladen. Downloads ' Ordner:

Schritt 2: Starten Sie die Eingabeaufforderung

Öffnen Sie die Eingabeaufforderung mit Administratorrechten über „ Start-up ' Speisekarte:

Schritt 3: Krew installieren

Navigieren Sie zu dem Verzeichnis, in dem sich „ Blut.exe ” Datei wird heruntergeladen:

CD C:\Benutzer\Dell\Downloads

Als nächstes verwenden Sie den folgenden Befehl, um krew unter Windows zu installieren:

.\Blut Installieren Blut

Der obige Befehl installiert krew im Benutzerverzeichnis „ C:\Benutzer\ \.crew\bin ”:

Schritt 4: Krew zum Windows-Pfad hinzufügen

Um über die Windows-Befehlszeile auf die Krew-Befehle zuzugreifen, müssen Benutzer krew im Windows-Pfad hinzufügen. Suchen Sie dazu nach „ Umgebungsvariable ” im Startmenü und starten Sie die unten hervorgehobenen Einstellungen:

Von dem ' Fortschrittlich Öffnen Sie auf der Registerkarte „Umgebungsvariablen“ die Einstellungen:

Wähle aus ' Weg ”-Variable und drücken Sie die „ Bearbeiten ' Taste:

Drücken Sie die Taste „ Neu Klicken Sie auf die Schaltfläche „Um einen Pfad hinzuzufügen, fügen Sie das Symbol „“ ein. C:\Benutzer\ \.crew\bin „Pfad“ und klicken Sie auf die Schaltfläche „OK“:

Schritt 5: Verifizierung

Schließen Sie nun alle Windows-Terminals und starten Sie die Eingabeaufforderung oder PowerShell. Führen Sie dann den folgenden Befehl aus, um zu überprüfen, ob krew installiert ist oder nicht:

Kubectl-Blut

Die Ausgabe zeigt, dass wir krew erfolgreich auf dem System installiert haben:

Entschlüsseln Sie das Kubernetes-Geheimnis mithilfe des View-Secret-Pakets

Um das Geheimnis mit dem View-Secret-Paket zu entschlüsseln, installieren Sie es zunächst mit krew. Verwenden Sie danach die Funktion „ kubectl view-secret ”-Befehl, um das Geheimnis zu entschlüsseln. Sehen Sie sich zur Veranschaulichung die folgenden Schritte an.

Schritt 1: View-Secret-Paket installieren

Um das View-Secret-Paket zu installieren, verwenden Sie das Kubectl-Krew-Plugin wie unten gezeigt:

Kubectl-Blut Installieren Sichtgeheimnis

Sie können sehen, dass wir das View-Secret-Paket installiert haben. Ignorieren Sie auch die unten angezeigte Warnung:

Schritt 2: Kubernetes Secret anzeigen

Um das entschlüsselte Kubernetes-Geheimnis anzuzeigen, verwenden Sie als Nächstes die Option „ kubectl view-secret ' Befehl:

kubectl view-secret demo-secret

Hier zeigt die Ausgabe, dass das aktuelle Geheimnis zwei Variablen enthält. Um den dekodierten Wert anzuzeigen, muss der Benutzer im Befehl auch den Variablennamen angeben:

Schritt 3: Entschlüsseln Sie das Geheimnis

Um den geheimen Wert zu entschlüsseln, verwenden Sie „ kubectl view-secret ' Befehl:

kubectl view-secret demo-secret Benutzername

Hier haben wir den Benutzernamen entschlüsselt:

Durch Ändern des Variablennamens im obigen Befehl haben wir wie unten gezeigt auf das Passwort zugegriffen:

kubectl view-secret demo-geheimes Passwort

Dabei geht es darum, in Kubernetes an ein entschlüsseltes Geheimnis zu gelangen.

Abschluss

Um das entschlüsselte Geheimnis in Kubernetes zu erhalten, greifen Sie zunächst über den Befehl „kubectl get Secret“ auf die geheimen Daten im JSON-Format zu. Dieser Befehl zeigt geheime Daten an, die in Base64 codiert sind. Um die Daten zu entschlüsseln, verwenden Sie „ echo | base64 –dekodieren ' Befehl. Alternativ kann der Benutzer das entschlüsselte Geheimnis mithilfe des Pakets „view-secret“ anzeigen. In diesem Blog wurde veranschaulicht, wie man in Kubernetes Geheimnisse entschlüsselt.