Provider di credenziali Secret Manager

Questo documento descrive come utilizzare Secret Manager come archivio delle credenziali con Dataproc Serverless per archiviare e accedere in sicurezza ai dati sensibili elaborati dai carichi di lavoro serverless.

Panoramica

Secret Manager può proteggere i tuoi dati sensibili, come chiavi API, password e certificati. Puoi utilizzarlo per gestire, accedere e controllare i tuoi secret in Google Cloud.

Quando esegui un carico di lavoro batch Dataproc Serverless, puoi configurarlo per utilizzare un secret di Secret Manager utilizzando il fornitore di credenziali Secret Manager di Dataproc.

Disponibilità

Questa funzionalità è disponibile per le versioni del runtime Dataproc Serverless per Spark 1.2.29 e successive, 2.2.29 e successive o le versioni del runtime principali successive.

Terminologia

La seguente tabella descrive i termini utilizzati in questo documento.

Termine Descrizione
Secret Un secret di Secret Manager è un oggetto del progetto globale che contiene una raccolta di metadati e versioni dei secret. Puoi archiviare, gestire e accedere ai secret come blob binari o stringhe di testo.
Credential In Hadoop e in altri carichi di lavoro Dataproc, una credenziale è composta da un nome (ID) e da un valore (password). Un ID e un valore della credenziale vengono mappati a un ID secret e a un valore secret di Secret Manager (versione del secret).

Utilizzo

Puoi configurare componenti Hadoop e altri componenti OSS supportati per l'utilizzo con Secret Manager impostando le seguenti proprietà quando invii un carico di lavoro Dataproc Serverless:

  • Percorso del provider (obbligatorio): la proprietà percorso del provider, hadoop.security.credential.provider.path, è un elenco separato da virgole di uno o più URI del provider di credenziali che viene attraversato per risolvere una credenziale.

    --properties=hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
    
    • Il carattere scheme nel percorso del provider indica il tipo di provider delle credenziali. Gli schemi Hadoop includono jceks://, user://,localjceks://. Utilizza lo schema gsm:// per cercare le credenziali in Secret Manager.
  • Sostituisci operatore punto : il servizio Secret Manager non consente i punti (.) nei nomi dei secret. Tuttavia, alcuni componenti software open source (OSS) utilizzano i punti nelle chiavi delle credenziali. Per risolvere questa limitazione, attiva questa proprietà per sostituire i punti (.) con i trattini (-) nei nomi delle credenziali. In questo modo, le credenziali OSS con punti nei nomi possono essere archiviate e recuperate correttamente da Secret Manager.

    Ad esempio, se la chiave delle credenziali OSS è a.b.c, devi modificarla in a-b-c quando la memorizzi in Secret Manager.

    --properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
    

    Questa è una proprietà facoltativa. Per impostazione predefinita, il valore è false. Per le chiavi delle credenziali che non hanno un operatore punto (.) nel nome della credenziale, questa proprietà può essere ignorata in tutta sicurezza.

  • Versione del secret : i secret in Secret Manager possono avere più versioni (valori). Utilizza questa proprietà per accedere a una versione specifica del secret per un accesso stabile negli ambienti di produzione.

    --properties=hadoop.security.credstore.google-secret-manager.secret-version=1
    

    Questa è una proprietà facoltativa. Per impostazione predefinita, Secret Manager accede alla versione LATEST, che si risolve nel valore più recente del secret in fase di esecuzione. Se il tuo caso d'uso è accedere sempre alla versione LATEST di un segreto, questa proprietà può essere ignorata in tutta sicurezza.

Esegui un carico di lavoro batch con il provider di credenziali Secret Manager

Per inviare un carico di lavoro batch che utilizza il provider di credenziali Secret Manager, esegui il seguente comando localmente o in Cloud Shell.

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...

Sostituisci quanto segue:

  • REGION: una regione Compute Engine in cui viene eseguito il carico di lavoro
  • JARS: percorso del file jar del carico di lavoro
  • MAIN_CLASS: la classe principale del file jar
  • PROJECT_ID: il tuo ID progetto, elencato nella sezione Informazioni sul progetto della dashboard della console Google Cloud