Tutorial: Acceso a Azure Blob Storage mediante Azure Databricks y Azure Key Vault

En este tutorial, aprenderá cómo acceder a Azure Blob Storage desde Azure Databricks mediante un secreto almacenado en Azure Key Vault.

En este tutorial, aprenderá a:

  • Crear un contenedor de blobs con la CLI de Azure.
  • Crear una instancia de Key Vault y establecer un secreto.
  • Crear un área de trabajo de Azure Databricks y agregar un ámbito de secreto de Key Vault.
  • Acceder al contenedor de blobs desde el área de trabajo de Azure Databricks.

Requisitos previos

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Antes de iniciar este tutorial, instale la CLI de Azure.

Creación de un contenedor de blobs con la CLI de Azure

Primero tendrá que crear una cuenta de almacenamiento de uso general para usar blobs. Si no tiene un grupo de recursos, cree uno antes de ejecutar el comando. El siguiente comando crea y muestra los metadatos del contenedor de almacenamiento. Copie el identificador.

az storage account create --name contosoblobstorage5 --resource-group contosoResourceGroup --location eastus --sku Standard_ZRS --encryption-services blob

Salida de consola del comando anterior. El identificador está resaltado en verde para que lo vea el usuario final.

Para poder crear un contenedor en el que cargar el blob, tendrá que asignar el rol de Colaborador de datos de Storage Blob a sí mismo. En este ejemplo, el rol se asignará a la cuenta de almacenamiento que ha creado anteriormente.

az role assignment create --role "Storage Blob Data Contributor" --assignee t-trtr@microsoft.com --scope "/subscriptions/{subscription-id}/resourceGroups/contosoResourceGroup5/providers/Microsoft.Storage/storageAccounts/contosoblobstorage5

Ahora que ha asignado el rol a la cuenta de almacenamiento, puede crear un contenedor para el blob.

az storage container create --account-name contosoblobstorage5 --name contosocontainer5 --auth-mode login

Una vez creado el contenedor, puede cargar un blob (archivo de su elección) en ese contenedor. En este ejemplo, se carga un archivo .txt con helloworld.

az storage blob upload --account-name contosoblobstorage5 --container-name contosocontainer5 --name helloworld --file helloworld.txt --auth-mode login

Obtenga una lista de los blobs del contenedor para comprobar que el archivo se encuentra en el contenedor.

az storage blob list --account-name contosoblobstorage5 --container-name contosocontainer5 --output table --auth-mode login

Salida de consola del comando anterior. Muestra el archivo que se acaba de almacenar en el contenedor.

Obtenga el valor key1 del contenedor de almacenamiento mediante el siguiente comando. Copie el valor.

az storage account keys list -g contosoResourceGroup5 -n contosoblobstorage5

Salida de consola del comando anterior. El valor de key1 está resaltado en un cuadro verde.

Creación de una instancia de Key Vault y establecimiento de un secreto

Va a crear una instancia de Key Vault mediante el siguiente comando. Este comando mostrará también los metadatos de la instancia de Key Vault. Copie los valores del identificador y de vaultUri.

az keyvault create --name contosoKeyVault10 --resource-group contosoResourceGroup5 --location eastus

ImagenSalida de consola del comando anterior. El id. y el valor vaultUri están resaltados en verde para que el usuario los vea.

Para crear el secreto, use el comando siguiente. Establezca el valor del secreto en el valor key1 de la cuenta de almacenamiento.

az keyvault secret set --vault-name contosoKeyVault10 --name storageKey --value "value of your key1"

Creación de un área de trabajo de Azure Databricks e incorporación de un ámbito de secreto de Key Vault

Esta sección no se puede completar mediante la línea de comandos. Tendrá que acceder a Azure Portal para:

  1. Crear el recurso de Azure Databricks.
  2. Iniciar el área de trabajo.
  3. Crear un ámbito de secreto compatible con Key Vault.

Acceder al contenedor de blobs desde el área de trabajo de Azure Databricks.

Esta sección no se puede completar mediante la línea de comandos. Tendrá que usar el área de trabajo Azure Databricks para:

  1. Crear un nuevo clúster.
  2. Crear un Nuevo Notebook.
  3. Rellene los campos correspondientes en el script de Python.
  4. Ejecute el script de Python.
dbutils.fs.mount(
source = "wasbs://<your-container-name>@<your-storage-account-name>.blob.core.windows.net",
mount_point = "/mnt/<mount-name>",
extra_configs = {"<conf-key>":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")})

df = spark.read.text("/mnt/<mount-name>/<file-name>")

df.show()

Pasos siguientes

Asegúrese de que el almacén de claves se pueda recuperar: