Azure

Databricks: claves, cadenas de conexión y secretos

Como ya leímos en el post de introducción a Azure Databricks, nuestros desarrollos estarán basados en Notebooks que podemos ejecutar bajo demanda o programados en un Job. Este modelo de trabajo implica una buena gestión de las cadenas de conexión, claves o Secrets que vamos a compartir con los desarrolladores o usuarios que acceden a los Notebooks. No queremos tener ningún problema de seguridad, si ocurriera que se perdiese una cadena de conexión a alguna de nuestras bases de datos.

Para abordar este tema, Databricks trabaja con el concepto de Secrets. Secrets es un repositorio donde almacenamos, dentro de diferentes ámbitos (Scopes), un diccionario de clave-valor. El objetivo es que podamos almacenar la contraseña y el usuario de conexión a una base de datos y, si tenemos el SKU Premium, que asignemos permisos a los ámbitos para que los desarrolladores puedan acceder a ellos para lectura de estos valores y crear su cadena de conexión.

Scopes

Un ámbito o scope es un repositorio donde vamos a agrupar las diferentes claves que estén relacionadas entre sí o que necesitamos dar acceso a ciertos usuarios.

Para crear un ámbito podemos elegir entre dos tipos: basado en Azure Key Vault o en Databricks. El primero estará compartido en nuestra suscripción de Azure y podrá ser usado por cualquier servicio, y el segundo solamente estará disponible en nuestro Workspace.

Si elegimos ámbitos basados en Databricks, usaremos la herramienta de cliente de Databricks para crearlos.

Secrets

Nuestras claves se almacenarán en los diferentes ámbitos que hayamos creados y se compondrán de una clave para identificarla y un valor en formato texto UTF-8.

¿Cómo usar los Secrets?

Ha llegado la hora de ponerse en modo desarrollador y hacer uso de estas claves en nuestros Notebooks. Para esto, Databricks dispone de una librearía, llamada Databricks Utilities, que nos da soporte al acceso a las claves de los diferentes ámbitos a los que tengamos acceso.

Como ejemplo, veamos como acceder a una cuenta de almacenamiento de Azure usando Secrets y sin usar Secrets.


Como se puede ver en la imagen anterior, desde nuestro Notebook de configuración establecemos el nombre de la cuenta y la clave de acceso a la misma. Sobra decir que este Notebook lo podría leer cualquier con acceso de lectura.

Si usamos Secrets, lo que hacemos es reemplazar los valores sensibles por el código de acceso de dbutils a la clave que necesitamos, como podemos ver en la siguiente imagen.


Seguiremos escribiendo sobre buenas prácticas en el mundo del desarrollo con Databricks pero, por ahora, no dejéis de usar los Secrets para garantizar la seguridad de acceso a los datos 😉

Compartir
Publicado por
Alberto Diaz Martin

Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continuas navegando, estás dando tu consentimiento para aceptar las cookies y también nuestra política de cookies (esperemos que no te empaches con tanta cookie 😊)