En este documento, se describe cómo usar Secret Manager como un almacén de credenciales con Dataproc Serverless para almacenar y acceder de forma segura a los datos sensibles que procesan las cargas de trabajo sin servidores.
Descripción general
Secret Manager puede proteger tus datos sensibles, como tus claves de API, contraseñas y certificados. Puedes usarlo para administrar, acceder y auditar tus secretos en Google Cloud.
Cuando ejecutas una carga de trabajo por lotes de Dataproc sin servidores, puedes configurarla para que use un secreto de Secret Manager con el Proveedor de credenciales de Secret Manager de Dataproc.
Disponibilidad
Esta función está disponible para las versiones principales 1.2.29, 2.2.29 o posteriores del entorno de ejecución de Dataproc Serverless para Spark.
Terminología
En la siguiente tabla, se describen los términos que se usan en este documento.
Término | Descripción |
---|---|
Secret |
Un secreto de Secret Manager es un objeto de proyecto global que contiene una colección de metadatos y versiones de secretos. Puedes almacenar, administrar y acceder a los secretos como BLOB binarios o cadenas de texto. |
Credential |
En Hadoop y otras cargas de trabajo de Dataproc, una credencial consiste en un nombre de credencial (ID) y un valor de credencial (contraseña). Un ID y un valor de credencial se asignan a un ID y un valor secretos de Secret Manager (versión secreta). |
Uso
Puedes configurar Hadoop y otros componentes de OSS compatibles para que funcionen con Secret Manager. Para ello, establece las siguientes propiedades cuando envíes una carga de trabajo de Dataproc sin servidores:
Ruta de acceso del proveedor (obligatoria): La propiedad ruta de acceso del proveedor,
hadoop.security.credential.provider.path
, es una lista de uno o más URIs de proveedores de credenciales separados por comas que se recorren para resolver una credencial.--properties=hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
- El
scheme
en la ruta de acceso del proveedor indica el tipo de proveedor de credenciales. Los esquemas de Hadoop incluyenjceks://
,user://
ylocaljceks://
. Usa el esquemagsm://
para buscar credenciales en Secret Manager.
- El
Operador de punto sustituto (opcional): Secret Manager no admite el operador de punto(
.
) en nombres de secretos, pero las claves de credenciales de componentes de OSS pueden contener este operador. Cuando esta propiedad se establece entrue
. Puedes reemplazar los puntos(.
) por guiones(-
) en los nombres de las credenciales. Por ejemplo, cuando esta propiedad se establece entrue
, puedes especificar el nombre de la credenciala.b.c
comoa-b-c
cuando la pasas a Secret Manager.--properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
Versión del secreto (opcional): Los secretos de Secret Manager pueden tener varias versiones (valores). Usa esta propiedad para acceder a una versión del Secret. De forma predeterminada, Secret Manager accede a la versión
LATEST
, que se resuelve en el valor más reciente del secreto durante el tiempo de ejecución. Una práctica recomendada es definir esta propiedad para obtener un acceso estable en entornos de producción. Para obtener información sobre cómo crear un secreto, consulta Crea y accede a un secreto con Secret Manager.--properties=hadoop.security.credstore.google-secret-manager.secret-version=1
Ejecuta una carga de trabajo por lotes con el proveedor de credenciales de Secret Manager
Para enviar una carga de trabajo por lotes que use el proveedor de credenciales de Secret Manager, ejecuta el siguiente comando de forma local o en 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...
Reemplaza lo siguiente:
- REGION: Una región de Compute Engine en la que se ejecuta tu carga de trabajo
- JARS: Ruta de acceso del archivo JAR de la carga de trabajo
- MAIN_CLASS: Es la clase principal de Jar.
- PROJECT_ID: El ID de tu proyecto, que se indica en la sección Información del proyecto del panel de la consola de Google Cloud