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

In questa esercitazione si accede ad Archiviazione BLOB di Azure da Azure Databricks usando una chiave di accesso dell'account di archiviazione archiviata in Azure Key Vault.

Importante

L'accesso alla chiave dell'account di archiviazione è un modello legacy. Per i nuovi carichi di lavoro, usare l'autorizzazione di Microsoft Entra ID con Azure Databricks (tramite le credenziali di Unity Catalog o un montaggio ABFS che usa OAuth) e disabilitare l'autorizzazione con chiave condivisa nell'account di archiviazione. L'autorizzazione di Entra ID elimina la necessità di archiviare o rigenerare le chiavi dell'account di archiviazione e fornisce funzionalità di audit granulari. I passaggi descritti in questo articolo rimangono validi per gli account di archiviazione che usano ancora l'accesso con chiave condivisa.

In questa esercitazione, imparerai a:

  • Creare un account di archiviazione e un contenitore BLOB con il interfaccia della riga di comando di Azure.
  • Crea un Key Vault e imposta un segreto.
  • Creare un'area di lavoro Azure Databricks e aggiungere un ambito segreto Key Vault.
  • Accedere al contenitore BLOB dall'area di lavoro Azure Databricks.

Prerequisiti

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

Prima di iniziare questa esercitazione, installare la CLI di Azure.

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

Crea un account di archiviazione di utilizzo generico per usare i BLOB. Se non si ha un gruppo di risorse, crearne uno prima di eseguire il comando . Il comando seguente crea l'account di archiviazione e ne visualizza i metadati. Copiare il valore id .

az storage account create --name <storage-account-name> --resource-group <resource-group> --location <location> --sku Standard_ZRS --encryption-services blob

Output della console del comando precedente. L'ID è evidenziato in verde per consentire all'utente di visualizzare.

Prima di creare un contenitore in cui caricare il BLOB, assegnare il ruolo Collaboratore ai dati dei BLOB di archiviazione a sé stessi. Per questo esempio, il ruolo viene assegnato nell'account di archiviazione creato in precedenza.

az role assignment create --role "Storage Blob Data Contributor" --assignee <user-principal-name> --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>

Ora che hai assegnato il ruolo, crea un contenitore per il tuo blob:

az storage container create --account-name <storage-account-name> --name <container-name> --auth-mode login

Dopo aver creato il contenitore, caricarvi un BLOB (file di propria scelta). In questo esempio viene caricato un file .txt con helloworld .

az storage blob upload --account-name <storage-account-name> --container-name <container-name> --name helloworld --file helloworld.txt --auth-mode login

Elenca i blob nel contenitore per verificare:

az storage blob list --account-name <storage-account-name> --container-name <container-name> --output table --auth-mode login

Output della console del comando precedente. Visualizza il file appena archiviato nel contenitore.

Ottenere il valore key1 dell'account di archiviazione con il comando seguente. Copia il valore.

az storage account keys list -g <resource-group> -n <storage-account-name>

Output della console del comando precedente. Il valore di key1 è evidenziato in una casella verde.

Creare un'istanza di insieme di credenziali delle chiavi e impostare un segreto

Creare un Key Vault con il comando seguente. Il comando visualizza anche i metadati dell'insieme di credenziali delle chiavi. Copiare i valori id e vaultUri .

az keyvault create --name <vault-name> --resource-group <resource-group> --location <location> --enable-rbac-authorization true --enable-purge-protection true

Immagine Output della console del comando precedente. ID e vaultUri sono entrambi evidenziati in verde per consentire all'utente di visualizzare.

Per creare il segreto, usare il comando seguente. Imposta il valore del segreto al valore key1 del tuo account di archiviazione.

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

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

Questa sezione richiede il portale di Azure. Usarlo per:

  1. Crea la tua risorsa Azure Databricks.
  2. Avvia il tuo spazio di lavoro.
  3. Creare un ambito segreto basato su Key Vault.

Accedere al contenitore BLOB dall'area di lavoro Azure Databricks

Questa sezione viene completata nell'area di lavoro Azure Databricks. Nell'area di lavoro:

  1. Creare un nuovo cluster.
  2. Creare un nuovo notebook.
  3. Compilare i campi corrispondenti nello script di Python.
  4. Eseguire lo script di Python.
dbutils.fs.mount(
source = "wasbs://<container-name>@<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

Assicurati che il tuo Key Vault sia recuperabile.