Auf dieser Seite werden einige Best Practices für die Verwaltung von Secrets für Anwendungen beschrieben, die Sie mit Cloud Deploy in Google Kubernetes Engine oder GKE Enterprise-Clustern bereitstellen.
Das Einfügen von Anwendungs-Secrets in Bereitstellungsartefakte birgt Sicherheitsrisiken. Daher sollten Sie es vermeiden, Secrets in Cloud Deploy-Pipelines zu verwalten.
Auf diese Weise verwendete Secrets sollten außerhalb des Bereichs von Cloud Deploy generiert, verwaltet und rotiert werden.
Secrets beziehen sich in diesem Kontext auf sensible Daten wie Datenbankanmeldedaten, API-Schlüssel, Zertifikate oder Passwörter.
Kubernetes-Secrets
Kubernetes-Secrets sind sichere Objekte, die vertrauliche Daten wie Passwörter, OAuth-Token und SSH-Schlüssel in Ihren Clustern speichern, getrennt von Pods. Secrets ähneln ConfigMaps, sollen jedoch vertrauliche Daten enthalten.
Da Kubernetes-Secrets ohne Verschlüsselung nicht standardmäßig sicher sind, werden sie von den in diesem Dokument beschriebenen Ansätzen nicht verwendet.
Secrets zur Verwendung mit Cloud Deploy verwalten
In diesem Abschnitt wird beschrieben, wie Sie Secrets für Anwendungen verwalten, die Sie mit Cloud Deploy bereitstellen.
Es gibt zwei Ansätze für die Verwaltung von Secrets mit GKE oder GKE Enterprise:
Google Secret Manager
Secret Manager ist ein vollständig verwalteter, multiregionaler Google Cloud-Dienst, der API-Schlüssel, Passwörter und andere sensible Daten sicher speichert.
Secrets aus Secret Manager können vom Cluster aus über die Clientbibliothek und Workload Identity oder mithilfe des CSI-Treibers für Secrets Store aufgerufen werden.
So verwenden Sie Secret Manager für Ihre Anwendung:
Verweisen Sie mit dem SDK auf das Secret aus Ihrem Anwendungscode.
Sie können zusätzliche Metadaten für das Secret mithilfe von Umgebungsvariablen angeben, z. B. Secret-Version oder Anwendungsumgebung (z. B. dev, staging, prod).
Wenn der Bereitstellungsprozess für eine bestimmte Funktion die Bereitstellung von Infrastruktur umfasst, erstellen oder aktualisieren Sie das Secret mit Secret Manager im Rahmen des Bereitstellungsprozesses, bevor Sie die Anwendung bereitstellen.
Weitere Informationen zum Verwalten von Kubernetes-Secrets mit Secret Manager finden Sie unter Secret Manager mit anderen Produkten verwenden .
HashiCorp Vault
Hashicorp Vault ist ein beliebtes und weit verbreitetes Open-Source-Tool zur Verwaltung von Secrets. Google Cloud bietet zahlreiche Integrationen und Unterstützung für Vault sowie andere HashiCorp-Tools wie Terraform.
Sie können Vault in Ihrem Kubernetes-Cluster so konfigurieren:
Auf Vault-Secrets über die API zugreifen und mit Workload Identity authentifizieren.
Secrets mithilfe von Vault Agent-Containern in Ihre Kubernetes-Pods einfügen.
Verwenden Sie den Vault-CSI-Anbieter, um diese Secrets zu nutzen.
Nächste Schritte
Weitere Informationen zu Best Practices für Secret Manager
Blogpost zu Best Practices für die Sicherheit mit HashiCorp Vault und Terraform in Google Cloud lesen.
Weitere Informationen zum Konfigurieren von Vault in Google Cloud.