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 lavorare 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.
  • Operatore punto sostitutivo (facoltativo): Secret Manager non supporta l'operatore punto(.) nei nomi dei secret, ma le chiavi delle credenziali dei componenti OSS possono contenere questo operatore. Quando questa proprietà è impostata su true. puoi sostituire i punti(.) con i trattini(-) nei nomi delle credenziali. Ad esempio, quando questa proprietà è impostata su true, puoi specificare il nome della credenziale a.b.c come a-b-c quando la passi a Secret Manager.

    --properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
    
  • Versione del secret (facoltativa): i secret in Secret Manager possono avere più versioni (valori). Utilizza questa proprietà per accedere a una versione del secret. Per impostazione predefinita, Secret Manager accede alla versione LATEST, che si risolve nel valore più recente del secret in fase di esecuzione. Una best practice consiste nel definire questa proprietà per l'accesso stabile negli ambienti di produzione. Per informazioni su come creare un secret, consulta Creare e accedere a un secret utilizzando Secret Manager.

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

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