チュートリアル:Azure Databricks と Azure Key Vault を使用して Azure Blob Storage にアクセスする
このチュートリアルでは、Azure Key Vault に格納されたシークレットを使用して Azure Databricks から Azure Blob Storage にアクセスする方法について説明します。
このチュートリアルでは、以下の内容を学習します。
- Azure CLI を使用してストレージ アカウントと BLOB コンテナーを作成する
- キー コンテナーを作成し、シークレットを設定する
- Azure Databricks ワークスペースを作成し、キー コンテナー シークレット スコープを追加する
- 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
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
キー コンテナーを作成し、シークレットを設定する
次のコマンドを使用して、キー コンテナーを作成します。 このコマンドを実行すると、キー コンテナーのメタデータも表示されます。 ID と vaultUri をメモします。
az keyvault create --name contosoKeyVault10 --resource-group contosoResourceGroup5 --location eastus
シークレットを作成するには、次のコマンドを使用します。 シークレットの値を、対象のストレージ アカウントの key1 値に設定します。
az keyvault secret set --vault-name contosoKeyVault10 --name storageKey --value "value of your key1"
Azure Databricks ワークスペースを作成し、キー コンテナー シークレット スコープを追加する
このセクションは、コマンド ラインを使用して完了することはできません。 次の操作を行うには、Azure portal にアクセスする必要があります。
- Azure Databricks リソースを作成する
- ワークスペースを起動する
- キー コンテナーを利用するシークレットのスコープを作成する
Azure Databricks ワークスペースから自分の BLOB コンテナーにアクセスする
このセクションは、コマンド ラインを使用して完了することはできません。 次の操作を行うには、Azure Databricks ワークスペースを使用する必要があります。
- 新しいクラスターを作成する
- 新しいノートブックを作成する
- Python スクリプトの対応するフィールドに入力する
- 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()
次のステップ
キー コンテナーが回復可能であることを確認します。