Руководство по Получение доступа к Хранилищу BLOB-объектов Azure с помощью Azure Databricks и Azure Key Vault

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

В этом руководстве описано следующее:

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

Предварительные требования

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

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

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

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

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

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

Прежде чем создать контейнер, в который вы отправите большой двоичный объект, необходимо назначить себе роль Участник данных BLOB-объектов хранилища. В нашем примере эта роль будет назначена ранее созданной учетной записи хранения.

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

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

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

После создания контейнера в него можно передать большой двоичный объект (любой файл на ваш выбор). В нашем примере это TXT-файл с текстом helloworld.

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

Получите список больших двоичных объектов в контейнере и убедитесь, что этот файл находится в контейнере.

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

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

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

az storage account keys list -g contosoResourceGroup5 -n contosoblobstorage5

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

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

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

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

ИзображениеВыходные данные консоли для указанной выше команды. Идентификатор и значение vaultUri выделены зеленым цветом для наглядности.

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

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

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

Действия, описанные в этом разделе, нельзя выполнить из командной строки. Вам потребуется применить портал Azure для выполнения следующих действий:

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

Получение доступа к контейнеру больших двоичных объектов из рабочей области Azure Databricks

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

  1. создание нового кластера;
  2. создание нового Notebook;
  3. заполнение полей в скрипте Python;
  4. выполнение скрипта 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()

Дальнейшие действия

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