你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:使用 Azure Databricks 和 Azure Key Vault 访问 Azure Blob 存储

本教程介绍如何使用 Azure Key Vault 中存储的机密从 Azure Databricks 访问 Azure Blob 存储。

本教程中,您将学习如何:

  • 使用 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

上述命令的控制台输出。键 1 的值在绿色框中突出显示。

创建 Key Vault 并设置机密

你将使用以下命令创建 Key Vault。 此命令还将显示 Key Vault 的元数据。 复制 ID 和 vaultUri

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 门户来执行以下操作:

  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()

后续步骤

确保你的密钥保管库可恢复: