In diesem Dokument wird beschrieben, wie Sie Secret Manager als Anmeldedatenspeicher mit Dataproc Serverless verwenden, um sensible Daten, die von serverlosen Arbeitslasten verarbeitet werden, sicher zu speichern und darauf zuzugreifen.
Übersicht
Mit Secret Manager können Sie Ihre sensiblen Daten wie API-Schlüssel, Passwörter und Zertifikate schützen. Sie können damit Ihre Secrets inGoogle Cloudverwalten, darauf zugreifen und sie prüfen.
Wenn Sie eine Dataproc Serverless-Batcharbeitslast ausführen, können Sie sie so konfigurieren, dass ein Secret Manager-Secret verwendet wird. Verwenden Sie dazu den Dataproc Secret Manager-Anmeldedatenanbieter.
Verfügbarkeit
Diese Funktion ist für die Dataproc Serverless for Spark-Laufzeitversionen 1.2.29 oder höher, 2.2.29 oder höher oder für neuere Hauptlaufzeitversionen verfügbar.
Terminologie
In der folgenden Tabelle werden die in diesem Dokument verwendeten Begriffe beschrieben.
Begriff | Beschreibung |
---|---|
Secret |
Ein Secret Manager-Secret ist ein globales Projektobjekt, das eine Sammlung von Metadaten und Secret-Versionen enthält. Sie können Secrets als binäre Blobs oder Textstrings speichern, verwalten und darauf zugreifen. |
Credential |
In Hadoop und anderen Dataproc-Arbeitslasten besteht ein Anmeldedatensatz aus einem Anmeldedatennamen (ID) und einem Anmeldedatenwert (Passwort). Eine Anmeldedaten-ID und ein Anmeldedatenwert werden einer geheimen ID und einem geheimen Wert (Secret-Version) im Secret Manager zugeordnet. |
Nutzung
Sie können unterstützte Hadoop- und andere Open-Source-Komponenten so konfigurieren, dass sie mit dem Secret Manager funktionieren. Legen Sie dazu beim Einreichen einer Dataproc Serverless-Arbeitslast die folgenden Eigenschaften fest:
Anbieterpfad (erforderlich): Die Eigenschaft „Anbieterpfad“,
hadoop.security.credential.provider.path
, ist eine durch Kommas getrennte Liste von URIs eines oder mehrerer Anmeldedatenanbieter, die durchlaufen werden, um Anmeldedaten aufzulösen.--properties=hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
- Das
scheme
im Anbieterpfad gibt den Anmeldedatenanbietertyp an. Zu den Hadoop-Schemas gehörenjceks://
,user://
undlocaljceks://
. Verwenden Sie das Schemagsm://
,um in Secret Manager nach Anmeldedaten zu suchen.
- Das
Punktoperator ersetzen : Der Secret Manager-Dienst erlaubt keine Punkte (
.
) in Secret-Namen. Einige Open-Source-Softwarekomponenten verwenden jedoch Punkte in ihren Anmeldeschlüsseln. Wenn Sie diese Einschränkung beheben möchten, aktivieren Sie diese Eigenschaft, um Punkte (.
) in Anmeldedatennamen durch Bindestriche (-
) zu ersetzen. So können OpenStack-Anmeldedaten mit Punkten in ihren Namen korrekt in Secret Manager gespeichert und abgerufen werden.Wenn ein Anmeldeschlüssel für Open Source-Dienste beispielsweise
a.b.c
lautet, müssen Sie ihn in Secret Manager ina-b-c
ändern.--properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
Dieses Attribut ist optional. Der Standardwert ist
false
. Bei Anmeldedatenschlüsseln, die keinen Punkt (.
) im Anmeldedatennamen haben, kann diese Eigenschaft ignoriert werden.Secret-Version : Secrets in Secret Manager können mehrere Versionen (Werte) haben. Verwenden Sie dieses Attribut, um in Produktionsumgebungen stabil auf eine bestimmte Secret-Version zuzugreifen.
--properties=hadoop.security.credstore.google-secret-manager.secret-version=1
Dieses Attribut ist optional. Standardmäßig greift Secret Manager auf die
LATEST
-Version zu, die bei Laufzeit auf den neuesten Wert des Secrets verweist. Wenn Sie immer auf dieLATEST
-Version eines Secrets zugreifen möchten, kann diese Eigenschaft ignoriert werden.
Batcharbeitslast mit Secret Manager-Anmeldedatenanbieter ausführen
Wenn Sie eine Batch-Arbeitslast einreichen möchten, für die der Secret Manager-Anmeldedatenanbieter verwendet wird, führen Sie den folgenden Befehl lokal oder in Cloud Shell aus.
gcloud dataproc batches submit spark \ --region=REGION \ --jars=JARS \ --class=MAIN_CLASS \ --properties="spark.hive.hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,spark.hive.hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed...
Ersetzen Sie Folgendes:
- REGION: eine Compute Engine-Region, in der Ihre Arbeitslast ausgeführt wird
- JARS: Pfad zum JAR-File der Arbeitslast
- MAIN_CLASS: die Hauptklasse der JAR-Datei
- PROJECT_ID: Ihre Projekt-ID, die im Bereich Projektinformationen des Google Cloud Console-Dashboards aufgeführt ist