Урок: Доступ к хранилищу BLOB-объектов Azure с помощью Azure Databricks и Azure Key Vault

В этом руководстве вы узнаете, как получить доступ к хранилищу BLOB-объектов Azure из Azure Databricks с помощью секрета, хранящегося в Azure Key Vault.

В этом руководстве вы узнаете, как:

  • Создайте учетную запись хранения и контейнер объектов BLOB с помощью Azure CLI
  • Создание Key Vault и установка секрета
  • Создание рабочей области Azure Databricks и добавление области секрета Key Vault
  • Доступ к контейнеру объектов BLOB из рабочей области Azure Databricks

Предпосылки

Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.

Перед началом работы с этим руководством установите Azure CLI.

Создайте учетную запись хранения и контейнер объектов BLOB с помощью Azure CLI

Сначала необходимо создать учетную запись хранения общего назначения, чтобы использовать объекты Blob. Если у вас нет группы ресурсов, создайте ее перед выполнением команды. Следующая команда создает и отображает метаданные контейнера хранилища. Скопируйте идентификатор.

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

Выходные данные консоли приведенной выше команды. Идентификатор выделен зеленым цветом для просмотра конечным пользователем.

Прежде чем создать контейнер для загрузки blob, вам потребуется назначить роль Storage Blob Data Contributor себе. В этом примере роль будет назначена учетной записи хранения, которую вы создали ранее.

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>

Теперь, когда вы назначили роль аккаунта хранилища, вы можете создать контейнер для блоба.

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

После создания контейнера вы можете загрузить блоб (выбранный вами файл) в этот контейнер. В этом примере загружается файл .txt с программой helloworld.

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

Перечислите объекты BLOB в контейнере, чтобы убедиться, что они в нём присутствуют.

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

Выходные данные консоли приведенной выше команды. В нем отображается файл, который был только что сохранен в контейнере.

Получите значение key1 контейнера хранилища с помощью следующей команды. Скопируйте значение вниз.

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

Выходные данные консоли приведенной выше команды. Значение key1 выделено в зеленом поле.

Создание Key Vault и установка секрета

Вы создадите Key Vault с помощью следующей команды. Эта команда также отображает метаданные Key Vault. Скопируйте ID и vaultUri.

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

Изображение Вывод консольной команды, указанной выше. Идентификатор и хранилище Uri выделены зеленым цветом для удобства пользователя.

Чтобы создать секрет, используйте следующую команду. Задайте значение секрета для значения key1 из учетной записи хранения.

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

Создание рабочей области Azure Databricks и добавление области секрета Key Vault

Этот раздел не может быть завершен с помощью командной строки. Чтобы получить доступ к порталу Azure , вам потребуется:

  1. Создание ресурса Azure Databricks
  2. Запуск рабочей области
  3. Создание области секрета, поддерживаемой Key Vault

Доступ к контейнеру объектов BLOB из рабочей области Azure Databricks

Этот раздел не может быть завершен с помощью командной строки. Вам потребуется использовать рабочую область Azure Databricks для:

  1. Создание нового кластера
  2. Создать новую записную книжку
  3. Заполнение соответствующих полей в скрипте Python
  4. выполнение скрипта 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()

Дальнейшие шаги

Убедитесь, что Хранилище ключей можно восстановить: