Tutorial: Acessar o Armazenamento de Blobs do Azure usando o Azure Databricks e o Azure Key Vault

Neste tutorial, você acessa Armazenamento de Blobs do Azure de Azure Databricks usando uma chave de conta de armazenamento armazenada em Azure Key Vault.

Importante

O acesso à chave da conta de armazenamento é um padrão herdado. Para novas cargas de trabalho, use a autorização do Microsoft Entra ID com o Azure Databricks (via credenciais de Catálogo do Unity ou de uma montagem ABFS que usa o OAuth) e desative a autorização de Chave Compartilhada na conta de armazenamento. A autorização do Entra ID elimina a necessidade de armazenar ou alternar as chaves da conta de armazenamento e fornece auditoria detalhada. As etapas neste artigo permanecem válidas para contas de armazenamento que ainda usam o acesso à Chave Compartilhada.

Neste tutorial, você:

  • Crie uma conta de armazenamento e um contêiner de blob com o CLI do Azure.
  • Crie um cofre de chaves e defina um segredo.
  • Crie um workspace do Azure Databricks e adicione um escopo de segredo do Key Vault.
  • Acesse seu contêiner de blob a partir do workspace do Azure Databricks.

Pré-requisitos

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Antes de iniciar este tutorial, instale a CLI do Azure.

Criar uma conta de armazenamento e um contêiner de blob com a CLI do Azure

Crie uma conta de armazenamento de uso geral para usar blobs. Se você não tiver um grupo de recursos, crie um antes de executar o comando. O comando a seguir cria a conta de armazenamento e exibe seus metadados. Copie o valor da ID .

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

Saída do console do comando acima. A ID é destacada em verde para que o usuário final possa ver.

Antes de criar um contêiner para o qual carregar o blob, atribua a função Colaborador de Dados do Blob de Armazenamento a si mesmo. Para este exemplo, a função é atribuída na conta de armazenamento que você criou anteriormente.

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>

Agora que você atribuiu a função, crie um contêiner para seu blob:

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

Depois que o contêiner for criado, carregue um blob (arquivo de sua escolha) nele. Neste exemplo, um arquivo .txt com helloworld é carregado.

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

Liste os blobs no contêiner para verificar:

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

Saída do console do comando acima. Ele exibe o arquivo que acabou de ser armazenado no contêiner.

Obtenha o valor key1 da sua conta de armazenamento com o comando a seguir. Copie o valor.

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

Saída do console do comando acima. O valor da chave1 é realçado em uma caixa verde.

Criar um cofre de chaves e definir um segredo

Crie um cofre de chaves com o comando a seguir. O comando também exibe os metadados do cofre de chaves. Copie os valores de id e vaultUri.

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

Imagem Saída do console do comando acima. A ID e o vaultUri estão realçados em verde para visualização do usuário.

Para criar o segredo, use o comando a seguir. Defina o valor do segredo como o valor key1 da sua conta de armazenamento.

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

Criar um espaço de trabalho do Azure Databricks e adicionar um escopo de segredos ao Key Vault

Esta seção requer o portal Azure. Use-o para:

  1. Crie seu recurso de Azure Databricks.
  2. Abra seu espaço de trabalho.
  3. Criar um escopo de segredo com suporte do Azure Key Vault.

Acesse seu contêiner Blob a partir do workspace do Azure Databricks

Esta seção é concluída no workspace Azure Databricks. No espaço de trabalho:

  1. Criar um novo cluster.
  2. Criar um Novo Bloco de Anotações.
  3. Preencha os campos correspondentes no script Python.
  4. Execute o script em 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()

Próximas etapas

Verifique se o Key Vault está recuperável: