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 in Google Cloud verwalten, 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 Dataproc Serverless für 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 für einen oder mehrere 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 (optional): Der Secret Manager unterstützt den Punktoperator(
.
) in Secret-Namen nicht, aber Anmeldedatenschlüssel von Open-Source-Komponenten können diesen Operator enthalten. Wenn diese Property auftrue
festgelegt ist. Sie können Punkte(.
) in Anmeldedatennamen durch Bindestriche(-
) ersetzen. Wenn diese Eigenschaft beispielsweise auftrue
festgelegt ist, können Sie den Anmeldedatennamena.b.c
alsa-b-c
angeben, wenn Sie ihn an Secret Manager übergeben.--properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
Secret-Version (optional): Secrets in Secret Manager können mehrere Versionen (Werte) haben. Verwenden Sie diese Eigenschaft, um auf eine Secret-Version zuzugreifen. Standardmäßig greift Secret Manager auf die
LATEST
-Version zu, die bei Laufzeit auf den neuesten Wert des Secrets verweist. Es wird empfohlen, diese Property für einen stabilen Zugriff in Produktionsumgebungen zu definieren. Informationen zum Erstellen eines Secrets finden Sie unter Secret mit Secret Manager erstellen und darauf zugreifen.--properties=hadoop.security.credstore.google-secret-manager.secret-version=1
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