Blog

Manage Secrets in Azure Databricks Using Azure Key Vault

Azure Databricks / Azure Key Vault

Manage Secrets in Azure Databricks Using Azure Key Vault

Problema:

Se requiere utilizar Azure Key Vaults con Azure Databricks para no mostrar las credenciales dentro del notebook.

Solución:

Para realizar este ejemplo, lo primero que haremos es crear un Azure Key Vault, para lo que nos dirigimos a Create Resource->New->Key Vault , abriéndonos una ventana como la que se muestra a continuación:

Una vez creado nuestro Azure Key Vault, nos podemos dirigir a la opción de Properties y guardaremos los valores de DNS Name y Resource ID:

El siguiente pasó sera dirigirnos a la pestaña de Secrets y seleccionar +Generate/Import tal y como se muestra en la figura:

Crearemos un nuevo Secret con el nombre loggin, y luego en Value colocaremos el valor de nuestro usuario para realizar el loggin en Azure Databricks. Finalmente hacemos click en Create:

Repetimos el paso anterior para la creación del Secret llamado password, en donde colocaremos en Value el valor del password para acceder al Azure Databricks, tal y como se muestra en la figura. Luego Click en Create:

Ya habiendo realizo los pasos anteriores, nos dirigimos a la siguiente página: , en donde nos abrirá una ventana como la que se muestra a conitnuación:

En esta nueva ventana colocaremos un nombre al Secret Scope y también los valores del DNS Name y Resource ID que salvamos del Azure Key Vault creado en los pasos anteriores.

Vamos a importar un notebook desde Github para que puedas ver la implementación. Para esto, nos dirigiremos al Workspace de Azure Databricks y luego ubicaremos la opción de Import:

Se nos abrirá una ventana en donde colocaremos el siguiente URL: https://github.com/RaulSarachaga/azure_databricks/blob/master/Key%20Vault/Azure%20Key%20Vault.ipynb

Obteniendo algo como lo siguiente:

Una vez importado el código, podemos ver que en la sección donde se coloca el client.id y cliente.secret, se encuentra el comando dbutils.secrets.get, el cual nos permite enviar el scope(antes creado por nosotros) y el nombre del key, todo esto con la finalidad de no enviarle las credenciales en duro por un tema de seguridad:

Si montamos el container a nuestro cluster y luego llamamos a una tabla(en mi caso a la tabla productos), obtendríamos algo como lo siguiente:

Como vemos, podemos leer sin problemas la data, utilizando un código de montando en donde se utilicen el servicio de Azure Key Vault

Conclusiones:

Leave your thought here

Your email address will not be published. Required fields are marked *

Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
  • Attributes
  • Custom attributes
  • Custom fields
Compare
Wishlist 0
Open wishlist page Continue shopping