Esercitazione: Accedere ad Archiviazione BLOB di Azure con Azure Databricks e Azure Key Vault

Questa esercitazione illustra come accedere ad Archiviazione BLOB di Azure da Azure Databricks usando i segreti archiviati in Azure Key Vault.

In questa esercitazione apprenderai a:

  • Creare un account di archiviazione e un contenitore BLOB con l'interfaccia della riga di comando di Azure
  • Creare un'istanza di Key Vault e impostare un segreto
  • Creare un'area di lavoro di Azure Databricks e aggiungere un ambito di segreti di Key Vault
  • Accedere al contenitore BLOB dall'area di lavoro di Azure Databricks

Prerequisiti

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Prima di iniziare questa esercitazione, installare l'interfaccia della riga di comando di Azure.

Creare un account di archiviazione e un contenitore BLOB con l'interfaccia della riga di comando di Azure

Per usare i BLOB, è necessario creare prima un account di archiviazione per utilizzo generico. Se non è disponibile, creare un gruppo di risorse prima di eseguire il comando. Il comando seguente crea e visualizza i metadati del contenitore di archiviazione. Copiare l'ID.

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

Console output of the above command. ID is highlighted in green for end-user to see.

Prima di creare un contenitore in cui caricare il BLOB, è necessario assegnare il ruolo Collaboratore ai dati dei BLOB di archiviazione a se stessi. Per questo esempio, il ruolo verrà assegnato all'account di archiviazione creato in precedenza.

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

Ora che il ruolo è stato assegnato all'account di archiviazione, è possibile creare un contenitore per il BLOB.

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

Una volta creato il contenitore, è possibile caricarvi un BLOB (file a scelta). In questo esempio viene caricato un file con estensione txt con helloworld.

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

Elencare i BLOB nel contenitore per verificare che siano presenti.

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

Console output of the above command. It displays the file that was just stored in the container.

Ottenere il valore di key1 del contenitore di archiviazione usando il comando seguente. Copiare il valore.

az storage account keys list -g contosoResourceGroup5 -n contosoblobstorage5

Console output of the above command. The value of key1 is highlighted in a green box.

Creare un'istanza di Key Vault e impostare un segreto

Verrà creata un'istanza di Key Vault usando il comando seguente. Questo comando visualizzerà anche i metadati di Key Vault. Copiare i valori di ID e vaultUri.

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

ImageConsole output of the above command. The ID and the vaultUri are both highlighted in green for the user to see.

Per creare il segreto, usare il comando seguente. Impostare il valore del segreto sul valore di key1 dell'account di archiviazione.

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

Creare un'area di lavoro di Azure Databricks e aggiungere un ambito di segreti di Key Vault

Questa azione non può essere completata tramite la riga di comando. Sarà necessario accedere al portale di Azure per:

  1. Creare la risorsa di Azure Databricks
  2. Avviare l'area di lavoro
  3. Creare un ambito di segreti con supporto di Key Vault

Accedere al contenitore BLOB dall'area di lavoro di Azure Databricks

Questa azione non può essere completata tramite la riga di comando. Sarà necessario usare l'area di lavoro di Azure Databricks per:

  1. Creare un nuovo cluster
  2. Creare un nuovo notebook
  3. Compilare i campi corrispondenti nello script Python
  4. Eseguire lo script 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()

Passaggi successivi

Assicurarsi che l'istanza di Key Vault sia recuperabile: