Secrets für vertrauliche Daten
Speichern und verwalten Sie vertrauliche Informationen wie Passwörter und API-Schlüssel mithilfe von Secrets sicher.
Secrets für vertrauliche Daten ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Schutz vertraulicher Informationen
Bei der Entwicklung von Anwendungen arbeiten Sie häufig mit vertraulichen Informationen wie Datenbankpasswörtern, API-Schlüsseln oder privaten Zertifikaten.
Diese direkt im Anwendungscode oder in Konfigurationsdateien zu speichern, stellt ein großes Sicherheitsrisiko dar! Dies kann zu Datenlecks führen und Ihr System offenlegen.
Einführung in Kubernetes Secrets
Kubernetes Secrets sind Objekte, die dafür entwickelt wurden, vertrauliche Daten sicher innerhalb Ihres Clusters zu speichern.
Sie helfen Ihnen dabei, vertrauliche Informationen von Ihren Pod-Definitionen und Ihrem Anwendungscode getrennt zu halten. Dadurch werden Ihre Deployments sicherer und einfacher zu verwalten.
- Getrennt: Halten Sie vertrauliche Daten aus Container-Images und Pod-YAML-Dateien heraus.
- Zugänglich: Pods können sie als Umgebungsvariablen oder eingebundene Dateien verwenden.
Secrets im Vergleich zu ConfigMaps
Vielleicht erinnern Sie sich aus einer vorherigen Lektion an ConfigMaps, die für nicht vertrauliche Konfigurationsdaten verwendet werden.
Secrets funktionieren ähnlich, sind aber speziell für vertrauliche Daten vorgesehen. Beide speichern Schlüssel-Wert-Paare, doch Secrets berücksichtigen den vertraulichen Charakter der Daten.
- ConfigMaps: Für allgemeine, nicht vertrauliche Konfigurationen (z. B. Protokollierungsstufen oder API-Endpunkte).
- Secrets: Für vertrauliche Daten (z. B. Passwörter, Token oder private Schlüssel).
Denken Sie daran: Secrets sind standardmäßig base64-codiert, nicht verschlüsselt!
Secret aus einem Literalwert erstellen
Die einfachste Möglichkeit, ein Secret zu erstellen, ist die Verwendung eines Literalwerts mit kubectl create secret generic.
Dies eignet sich für einzelne, kurze vertrauliche Daten wie ein einfaches Passwort.
kubectl create secret generic my-db-secret \
--from-literal=username=admin \
--from-literal=password=SuperSecretP@ssw0rd!Secret aus Dateien erstellen
Bei größeren oder mehrzeiligen vertraulichen Daten (z. B. einem privaten Schlüssel oder einer vollständigen Konfigurationsdatei) ist es besser, ein Secret aus Dateien zu erstellen.
Erstellen Sie zunächst die Dateien lokal und verweisen Sie anschließend auf sie. Kubernetes liest den Dateiinhalt ein und speichert ihn.
# Create local files first
echo "my-api-key-12345" > api-key.txt
echo "my-token-abcde" > auth-token.txt
# Create the Secret
kubectl create secret generic app-credentials \
--from-file=api-key.txt \
--from-file=auth-token.txtSecrets als Umgebungsvariablen verwenden
Pods können Secret-Daten verwenden, indem diese direkt in ihre Umgebungsvariablen injiziert werden. Dies ist bei einfachen Schlüssel-Wert-Paaren üblich.
Sie können einzelne Schlüssel aus einem Secret oder mit envFrom alle Schlüssel referenzieren.
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-env
spec:
containers:
- name: my-app
image: nginx:latest
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: my-db-secret
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: my-db-secret
key: passwordSecrets als eingebundene Dateien verwenden
Bei vertraulichen Dateien (z. B. Zertifikaten oder privaten Schlüsseln) oder wenn eine Anwendung Konfigurationen aus bestimmten Dateipfaden erwartet, können Sie Secrets als Dateien in einen Pod einbinden.
Jeder Schlüssel im Secret wird zu einer Datei im eingebundenen Verzeichnis. Der Wert des Schlüssels bildet den Dateiinhalt.
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-vol
spec:
containers:
- name: my-app
image: nginx:latest
volumeMounts:
- name: app-secret-volume
mountPath: "/etc/secrets"
readOnly: true
volumes:
- name: app-secret-volume
secret:
secretName: app-credentialsSicherheit für Ihre Secrets
Secrets schützen Daten zwar vor beiläufigem Einsehen, sind aber kein Allheilmittel. Beachten Sie die folgenden Punkte:
- Base64-Codierung: Secrets sind base64-codiert, nicht verschlüsselt. Jeder, der Zugriff auf das Secret hat, kann es decodieren.
- RBAC: Verwenden Sie Role-Based Access Control (RBAC), um einzuschränken, wer Secrets lesen, erstellen oder ändern darf.
- Verschlüsselung ruhender Daten: Aktivieren Sie für echte Sicherheit die Verschlüsselung ruhender Daten in Ihrem etcd-Datenspeicher (dem zugrunde liegenden Speicher von Kubernetes). Cloud-Anbieter bieten dies häufig an.
Secrets aktualisieren
Wenn sich Ihre vertraulichen Daten ändern, müssen Sie das Secret aktualisieren. Durch erneutes Ausführen von kubectl create secret mit den neuen Werten wird es aktualisiert. Alternativ können Sie kubectl apply -f mit einer aktualisierten YAML-Datei verwenden.
Bereits laufende Pods, die das Secret verwenden, übernehmen die Änderungen jedoch nicht automatisch. Um die Änderungen anzuwenden, müssen Sie die Pods, die das Secret verwenden, normalerweise neu starten oder erneut deployen.
Schnelltest: Secrets
Stellen Sie sich vor, Sie haben einen privaten API-Schlüssel, auf den Ihre Anwendung zugreifen muss. Welche Methode ist am sichersten und am besten geeignet, um diesen Schlüssel zu speichern und einem Kubernetes-Pod bereitzustellen?
Zusammenfassung: Secrets für vertrauliche Daten
Sehr gut! Sie haben gelernt, wie Sie vertrauliche Daten in Kubernetes verwalten!
- Secrets speichern vertrauliche Informationen wie Passwörter und API-Schlüssel.
- Sie sind base64-codiert und können als Umgebungsvariablen oder eingebundene Dateien verwendet werden.
- Wenden Sie immer RBAC an und ziehen Sie für maximale Sicherheit die Verschlüsselung ruhender Daten in Betracht.
- Denken Sie daran: Pods müssen neu gestartet werden, damit sie Aktualisierungen von Secrets übernehmen.
Häufig gestellte Fragen
Ist die Lektion „Secrets für vertrauliche Daten“ kostenlos?
Ja — der vollständige Text von „Secrets für vertrauliche Daten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Secrets für vertrauliche Daten“?
Speichern und verwalten Sie vertrauliche Informationen wie Passwörter und API-Schlüssel mithilfe von Secrets sicher. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Secrets für vertrauliche Daten“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- ConfigMaps für Konfigurationen
- Secrets für vertrauliche Daten
- Persistente Volumes und Claims
- StorageClasses und dynamische Bereitstellung