你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本教程介绍如何使用 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
必须先将 存储 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
创建 Key Vault 并设置机密
你将使用以下命令创建 Key Vault。 此命令还将显示 Key Vault 的元数据。 复制 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 工作区并添加 Key Vault 机密范围
无法通过命令行完成此部分。 需要访问 Azure 门户来执行以下操作:
- 创建 Azure Databricks 资源
- 启动你的工作区
- 创建由 Key Vault 支持的秘密范围
从 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()
后续步骤
确保你的密钥保管库可恢复: