Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un ámbito de secretos del área de trabajo es una colección de secretos con nombre en una sola área de trabajo. Los permisos de alcance secreto controlan quién puede leer, escribir y gestionar los secretos que contiene. Los permisos se aplican a todo el ámbito, no a secretos individuales, por lo que un usuario que puede leer un secreto en un ámbito puede leerlos todos. Para comparar los ámbitos de secretos del espacio de trabajo con los secretos de Unity Catalog, consulte Elegir dónde almacenar un secreto.
Para usar un ámbito de secretos del área de trabajo:
- Crear un ámbito secreto.
- Agregar secretos al ámbito.
- Conceda permisos en el ámbito.
- Haz referencia a los secretos en tu código, o en una propiedad de configuración de Spark o en una variable de entorno. Consulte el documento Usar un secreto en una propiedad de configuración de Spark o en una variable de entorno.
Warning
Los administradores de espacios de trabajo, creadores de secretos y usuarios que han recibido permiso pueden acceder y leer los secretos de Azure Databricks. Aunque Azure Databricks intenta ocultar valores secretos en las salidas de los cuadernos, no es posible impedir completamente que estos usuarios vean contenidos secretos. Asigne siempre permisos de acceso secreto cuidadosamente para proteger la información confidencial.
Administración de ámbitos secretos
Azure Databricks recomienda alinear ámbitos secretos con roles o aplicaciones en lugar de usuarios.
Hay dos tipos de ámbito secreto:
- Respaldado por Azure Key Vault: puede hacer referencia a secretos almacenados en una instancia de Azure Key Vault mediante ámbitos de secretos respaldados por Azure Key Vault. Un ámbito de secreto con respaldo de Azure Key Vault es una interfaz de solo lectura para el almacén de claves. Administre sus secretos en Azure.
- Con soporte de Databricks: un ámbito secreto con soporte de Databricks se almacena en una base de datos cifrada que es propiedad de y gestionada por Azure Databricks.
Importante
Los ámbitos de secretos respaldados por Azure Key Vault solo admiten el modelo de permisos de la Directiva de acceso de Vault, no el control de acceso basado en rol (RBAC) de Azure. Las nuevas bóvedas de claves de Azure usan Azure RBAC por defecto. Si tu bóveda de claves usa Azure RBAC, cambia su modelo de permisos a Vault access policy antes de crear un ámbito secreto respaldado por Azure Key Vault.
Después de crear un ámbito de secreto, puede asignar permisos para conceder a los usuarios acceso a ámbitos de lectura, escritura y administración de secretos.
Crear un ámbito de secreto respaldado por Azure Key Vault
Cree un ámbito de secreto con el respaldo de Azure Key Vault en Azure Portal y en la interfaz de usuario de las áreas de trabajo de Azure Databricks. También puedes usar la CLI de Databricks.
Requirements
- Debe tener una instancia de Azure Key Vault. Si no dispone de una instancia de almacén de claves, siga las instrucciones de Crear un almacén de claves mediante el Azure portal.
- Debe tener el rol Colaborador de Key Vault, Colaborador o Propietario en la instancia de Azure Key Vault que quiere usar para respaldar el ámbito del secreto.
Nota:
La creación de un ámbito de secreto con respaldo de Azure Key Vault requiere el rol de Colaborador o Propietario en la instancia de Azure Key Vault aunque se haya concedido previamente al servicio Azure Databricks acceso al almacén de claves.
Si el Key Vault existe en un tenant diferente al del espacio de trabajo de Azure Databricks, el usuario de Microsoft Entra ID que crea el ámbito de secretos debe tener permiso para crear entidades de servicio en el tenant del Key Vault. De lo contrario, se produce el siguiente error:
Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}
Configuración de la instancia del almacén de claves de Azure para Azure Databricks
Inicia sesión en el portal de Azure, encuentra y selecciona la instancia de la bóveda de claves de Azure.
En Configuración, haga clic en la pestaña Configuración de acceso.
Establezca Modelo de permisos en Directiva de acceso al almacén. Los nuevos almacenes de claves utilizan de forma predeterminada el control de acceso basado en roles de Azure, que los ámbitos de secretos respaldados por Azure Key Vault no admiten.
Nota:
La creación de un ámbito de secretos respaldado por Azure Key Vault concede los permisos Get y List al ID de aplicación del servicio Azure Databricks mediante directivas de acceso de Vault.
En Configuración, seleccione Redes.
En Firewalls y redes virtuales establezca Permitir acceso desde: para Permitir acceso público desde redes virtuales y direcciones IP específicas.
En Excepción, marque Permitir que los servicios de confianza de Microsoft omitan este firewall.
Nota:
También puede establecer Permitir acceso desde para Permitir el acceso público desde todas las redes.
Creación de un ámbito de secreto compatible con Azure Key Vault
Vaya a
https://<databricks-instance>#secrets/createScope. Reemplaza<databricks-instance>por la URL del espacio de trabajo de la implementación de Azure Databricks. Esta dirección URL distingue mayúsculas ye minúsculas. Por ejemplo,scopeencreateScopedebe usar unaSmayúscula.
Escriba el nombre del ámbito de secretos. Los nombres de ámbito de secretos no distinguen mayúsculas y minúsculas.
En Administrar Principal, seleccione Creador o Todos los usuarios del espacio de trabajo para especificar qué usuarios tienen el permiso MANAGE en el ámbito de secretos.
El permiso MANAGE permite a los usuarios leer, escribir y conceder permisos en el ámbito. La cuenta debe tener el plan Premium para elegir Creator.
Escriba el nombre DNS (por ejemplo,
https://databrickskv.vault.azure.net/) y el identificador del recurso, por ejemplo:/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKVEstas propiedades están disponibles en la pestaña Configuración > Propiedades de Azure Key Vault en Azure Portal.
Haga clic en Crear.
Use el comando de la CLI de Databricks
databricks secrets list-scopespara comprobar que el ámbito se haya creado correctamente.
Crea un ámbito de secreto respaldado por Databricks
Crea un ámbito secreto con la CLI Databricks (versión 0.205 y superior) o con la API Secrets.
Nombres de ámbito de secretos:
- Debe ser único dentro de un área de trabajo.
- Debe consistir en caracteres alfanuméricos, guiones, guiones
@bajos y puntos, y no puede superar los 128 caracteres. - Distinguen mayúsculas y minúsculas.
Los nombres de ámbito secreto se consideran no confidenciales y son legibles para todos los usuarios del área de trabajo.
Para crear un ámbito mediante la CLI de Databricks:
databricks secrets create-scope <scope-name>
De forma predeterminada, los ámbitos se crean con permiso de administración para el usuario que creó el ámbito. Después de crear un ámbito secreto respaldado por Databricks, puede agregar secretos a él.
Listar ámbitos secretos
Para enumerar los ámbitos existentes en un área de trabajo mediante la CLI:
databricks secrets list-scopes
También puede enumerar ámbitos secretos mediante la API de secretos.
Eliminación de un ámbito de secreto
Al eliminar un ámbito de secretos, se eliminan todos los secretos y las ACLs aplicados al ámbito. Para eliminar un ámbito mediante la CLI, ejecute lo siguiente:
databricks secrets delete-scope <scope-name>
También puede eliminar un ámbito secreto mediante la API Secrets.
Administración de secretos
Un secreto es un par clave-valor que almacena material confidencial mediante un nombre de clave que es único dentro de un ámbito de secreto.
El método para crear un secreto depende de si se usa un ámbito respaldado por Azure Key Vault o un ámbito respaldado por Databricks.
Creación de un secreto en un ámbito respaldado por Azure Key Vault
Para crear un secreto en Azure Key Vault, use Azure Portal o la API REST de Azure Set Secret .
Creación de un secreto en un ámbito respaldado por Databricks
Crea un secreto con la Databricks CLI (versión 0.205 y superiores), el SDK de Databricks para Python en un cuaderno, o la Secrets API. Los nombres de los secretos no distinguen mayúsculas y minúsculas.
CLI de Databricks
Al crear un secreto en un ámbito respaldado por Databricks, puede especificar el valor del secreto de una de estas tres maneras:
- Especifica el valor como una cadena con el indicador
--string-value. - Escriba el secreto cuando se le solicite de forma interactiva (secretos de una sola línea).
- Pase el secreto mediante la entrada estándar (secretos de varias líneas).
Por ejemplo:
databricks secrets put-secret --json '{
"scope": "<scope-name>",
"key": "<key-name>",
"string_value": "<secret>"
}'
Si va a crear un secreto de varias líneas, puede pasar el secreto mediante la entrada estándar. Por ejemplo:
(cat << EOF
this
is
a
multi
line
secret
EOF
) | databricks secrets put-secret <scope-name> <key-name>
SDK de Databricks para Python
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.secrets.put_secret("<secret_scope>","<key-name>",string_value ="<secret>")
Descifrar un secreto
Lee un secreto con la CLI Databricks (versión 0.205 y superior), o en un cuaderno con la utilidad Secrets (dbutils.secrets).
CLI de Databricks
Para leer el valor de un secreto usando la CLI de Databricks, debes decodificar el valor codificado en base64. Puede usar jq para extraer el valor y base64 --decode descodificarlo:
databricks secrets get-secret <scope-name> <key-name> | jq -r .value | base64 --decode
Utilidad de secretos (dbutils.secrets)
password = dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")
Enumerar secretos
Para enumerar secretos en un ámbito determinado:
databricks secrets list-secrets <scope-name>
La respuesta muestra metadatos sobre los secretos, como sus nombres de clave. Para listar estos metadatos en un cuaderno o trabajo, utiliza la utilidad Secrets (dbutils.secrets). Por ejemplo:
dbutils.secrets.list('my-scope')
Elimina un secreto
Para eliminar un secreto de un ámbito con la CLI de Databricks:
databricks secrets delete-secret <scope-name> <key-name>
También puede usar la API de secretos.
Para eliminar un secreto de un ámbito respaldado por Azure Key Vault, use la API de REST SetSecret de Azure o la interfaz de usuario de Azure Portal.
Administración de permisos de ámbito de secretos
Por defecto, el usuario que crea un ámbito secreto tiene el MANAGE permiso sobre él, lo que le permite leer secretos en el ámbito, escribir secretos en él y gestionar sus permisos.
Nota:
Las ACL de secretos se encuentran en el nivel de ámbito. Si usa ámbitos con respaldo de Azure Key Vault, los usuarios a los que se concede acceso al ámbito tienen acceso a todos los secretos de Azure Key Vault. Para restringir el acceso, utilice instancias independientes de almacén de claves de Azure.
Gestiona los permisos de ámbito de secretos con la CLI Databricks (versión 0.205 y superior) o la API Secrets. Para conocer los niveles de permisos de secretos, consulte ACL de secreto
Conceder permisos a un usuario en un entorno secreto
Nota:
Conceder permisos en un ámbito de secreto requiere el plan Premium.
Para conceder permisos de usuario en un ámbito secreto mediante la CLI de Databricks:
databricks secrets put-acl <scope-name> <principal> <permission>
Al realizar una solicitud PUT para una entidad de seguridad que ya tiene un permiso aplicado, se sobrescribe el nivel de permisos existente.
El campo principal especifica una entidad de seguridad de Azure Databricks existente. Se especifica un usuario mediante su dirección de correo electrónico, una entidad de servicio con su valor applicationId y un grupo con su nombre de grupo. Para más información, consulte Principal.
Por ejemplo, para que un grupo como datascience lea los secretos en un ámbito, concédele READ:
databricks secrets put-acl <scope-name> <group> READ
Visualización de permisos de ámbito de secretos
Para ver todos los permisos de ámbito de secretos para un ámbito de secretos determinado:
databricks secrets list-acls <scope-name>
Para obtener los permisos de ámbito de secretos aplicados a una entidad de seguridad para un ámbito de secretos determinado:
databricks secrets get-acl <scope-name> <principal>
Si no existe ninguna ACL para el principal y el ámbito especificados, esta solicitud falla.
Eliminación de un permiso de ámbito de secretos
Para eliminar un permiso de ámbito secreto aplicado a un principal para un ámbito determinado:
databricks secrets delete-acl <scope-name> <principal>
Redacción secreta
Almacenar credenciales como secretos de Azure Databricks ayuda a protegerlas cuando ejecutas notebooks y trabajos. Sin embargo, aún puedes imprimir accidentalmente un secreto en buffers de salida estándar o mostrar el valor durante la asignación de variables.
Para evitar esto, Azure Databricks intenta censurar valores secretos que se leen mediante dbutils.secrets.get() y a los que se hace referencia en una propiedad de configuración de Spark. Cuando se muestra, los valores secretos se reemplazan por [REDACTED].
Por ejemplo, si establece una variable en un valor secreto mediante dbutils.secrets.get() e imprime esa variable, esa variable se reemplaza por [REDACTED].
Warning
La ocultación solo se aplica a los valores secretos literales. La funcionalidad de redacción secreta no impide transformaciones deliberadas y arbitrarias de un literal secreto. Para controlar secretos, utiliza listas de control de acceso para limitar los permisos para ejecutar comandos. Esto impide el acceso no autorizado a contextos de bloc de notas compartidos.
Redacción secreta en SQL
Azure Databricks intenta censurar todos los comandos del lenguaje de consulta de datos SQL (DQL) que invocan la función de secretos, incluyendo vistas referenciadas y funciones definidas por el usuario. Cuando se usa la secret función, la salida se reemplaza por [REDACTED] siempre que sea posible. Al igual que la redacción del cuaderno, esto solo se aplica a los valores literales, no a los secretos transformados o a los que se hace referencia indirectamente.
En lo que respecta a los comandos de lenguaje de manipulación de datos SQL (DML), Azure Databricks permite realizar consultas de secretos si el secreto se considera seguro. Por ejemplo, un secreto es seguro cuando está envuelto en una función criptográfica como sha() o aes_encrypt(), que impiden que los valores en bruto se almacenen sin cifrar.
Validación de secretos en SQL
Azure Databricks también aplica validación para bloquear comandos DML de SQL que podrían dar lugar a que se guarden secretos sin cifrar en tablas. El analizador de consultas intenta identificar y evitar estos escenarios, lo que ayuda a evitar el almacenamiento accidental de información confidencial en texto no cifrado.
Recursos adicionales
| Resource | Description |
|---|---|
| Administración de secretos | Compara los ámbitos secretos de los espacios de trabajo con los secretos del catálogo de Unity y mira dónde puedes usar cada uno. |
| Usar un secreto en una propiedad de configuración de Spark o variable de entorno | Haga referencia a secretos en las propiedades de configuración de Spark y las variables de entorno. |