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 includonojceks://
,user://
,localjceks://
. Utilizza lo schemagsm://
per cercare le credenziali in Secret Manager.
- Il carattere
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 ina-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 versioneLATEST
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