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 includonojceks://
,user://
,localjceks://
. Utilizza lo schemagsm://
per cercare le credenziali in Secret Manager.
- Il carattere
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 sutrue
. puoi sostituire i punti(.
) con i trattini(-
) nei nomi delle credenziali. Ad esempio, quando questa proprietà è impostata sutrue
, puoi specificare il nome della credenzialea.b.c
comea-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