Cómo no romper los límites, cómo crear una buena arquitectura y cómo hacer un buen mantenimiento

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 😉

mm

Sobre Alberto Diaz Martin

Alberto Diaz cuenta con más de 15 años de experiencia en la Industria IT, todos ellos trabajando con tecnologías Microsoft. Actualmente, es Chief Technology Innovation Officer en ENCAMINA, liderando el desarrollo de software con tecnología Microsoft, y miembro del equipo de Dirección. Para la comunidad, trabaja como organizador y speaker de las conferencias más relevantes del mundo Microsoft en España, en las cuales es uno de los referentes en SharePoint, Office 365 y Azure. Autor de diversos libros y artículos en revistas profesionales y blogs, en 2013 empezó a formar parte del equipo de Dirección de CompartiMOSS, una revista digital sobre tecnologías Microsoft. Desde 2011 ha sido nombrado Microsoft MVP, reconocimiento que ha renovado por séptimo año consecutivo. Se define como un geek, amante de los smartphones y desarrollador. Fundador de TenerifeDev (www.tenerifedev.com), un grupo de usuarios de .NET en Tenerife, y coordinador de SUGES (Grupo de Usuarios de SharePoint de España, www.suges.es)
Esta entrada ha sido publicada en Azure, Data, Databricks y etiquetada como . Enlace permanente .
ENCAMINA, piensa en colores