Secret Manager-Anmeldedatenanbieter

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ören jceks://, user:// und localjceks://. Verwenden Sie das Schema gsm://,um in Secret Manager nach Anmeldedaten zu suchen.
  • 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 in a-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 die LATEST-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