次の方法で共有


チュートリアル: Azure Databricks と Azure Key Vault を使用して Azure Blob Storage にアクセスする

このチュートリアルでは、Azure Key Vault に格納されているシークレットを使用して、Azure Databricks から Azure Blob Storage にアクセスする方法について説明します。

このチュートリアルでは、以下の内容を学習します。

  • Azure CLI を使用してストレージ アカウントと BLOB コンテナーを作成する
  • Key Vault を作成してシークレットを設定する
  • Azure Databricks ワークスペースを作成し、Key Vault シークレット スコープを追加する
  • Azure Databricks ワークスペースから BLOB コンテナーにアクセスする

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

このチュートリアルを開始する前に、 Azure CLI をインストールします。

Azure CLI を使用してストレージ アカウントと BLOB コンテナーを作成する

BLOB を使用するには、まず汎用ストレージ アカウントを作成する必要があります。 リソース グループがない場合は、コマンドを実行する前に作成します。 次のコマンドは、ストレージ コンテナーのメタデータを作成して表示します。 ID を下にコピーします。

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

上記のコマンドのコンソール出力。エンド ユーザーが表示できるように、ID が緑色で強調表示されています。

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

ストレージ アカウントにロールを割り当てたので、BLOB のコンテナーを作成できます。

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

コンテナーが作成されたら、そのコンテナーに BLOB (選択したファイル) をアップロードできます。 この例では、helloworld を含む .txt ファイルがアップロードされます。

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

コンテナー内の BLOB を一覧表示して、コンテナーに BLOB があることを確認します。

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 のメタデータも表示されます。 IDvaultUri をコピーします。

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

上記のコマンドのイメージ コンソール出力。ID と vaultUri の両方が緑色で強調表示され、ユーザーに表示されます。

シークレットを作成するには、次のコマンドを使用します。 シークレットの値をストレージ アカウントの key1 値に設定します。

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

Azure Databricks ワークスペースを作成し、Key Vault シークレット スコープを追加する

このセクションは、コマンド ラインでは完了できません。 次の場合は、 Azure portal にアクセスする必要があります。

  1. Azure Databricks リソースを作成する
  2. ワークスペースを起動する
  3. Key Vault でサポートされるシークレット スコープを作成する

Azure Databricks ワークスペースから BLOB コンテナーにアクセスする

このセクションは、コマンド ラインでは完了できません。 Azure Databricks ワークスペースを使用して次の作業を行う必要があります。

  1. 新しいクラスターを作成する
  2. 新しいノートブックを作成する
  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()

次のステップ

Key Vault が回復可能であることを確認します。