无需创建Secret Scope从Azure Key Vault在Databricks获取密钥及CLI相关疑问
关于Azure Databricks与Key Vault密钥访问的问题解答
一、无需创建Secret Scope直接访问Azure Key Vault密钥的方法
可以通过Azure SDK在Databricks笔记本中直接调用Key Vault API获取密钥,但需要确保Databricks集群拥有对应AKV的访问权限:
- 为集群的服务主体(或托管标识)分配Key Vault的
密钥读取者角色 - 在笔记本中安装依赖:
%pip install azure-keyvault-secrets azure-identity - 示例代码:
from azure.identity import DefaultAzureCredential from azure.keyvault.secrets import SecretClient vault_url = "https://你的密钥保管库名称.vault.azure.net/" credential = DefaultAzureCredential() secret_client = SecretClient(vault_url=vault_url, credential=credential) secret = secret_client.get_secret("你的密钥名称") print(secret.value)
这种方式绕开了Databricks Secret Scope,但依赖Azure身份认证体系,适合不需要在Databricks Secrets生态内复用密钥的场景。
二、Databricks CLI创建AKV-backed Secret Scope的运行位置
Databricks CLI命令可在任意安装并配置完成CLI的环境中执行:
- 本地开发机器(Windows/macOS/Linux):先安装Databricks CLI,再通过
databricks configure命令配置工作区URL和个人访问令牌(PAT) - Databricks集群终端:在集群的「终端」标签页直接运行(集群默认已预装CLI)
- CI/CD流水线(如Azure DevOps、GitHub Actions):在流水线环境中安装CLI并配置PAT后执行命令
创建AKV关联Scope的核心命令示例:
databricks secrets create-scope --scope <作用域名称> --scope-backend-type AZURE_KEYVAULT --resource-id <密钥保管库资源ID> --dns-name <密钥保管库DNS地址>
三、能否直接用Databricks CLI检索密钥而无需创建Secret Scope?
不行。Databricks CLI的secrets get命令依赖已创建的Secret Scope,因为CLI是通过Databricks Secrets服务访问密钥,而该服务必须通过Scope关联到Key Vault。如果要直接用CLI获取AKV密钥,可使用Azure CLI的az keyvault secret show命令,前提是CLI已完成登录并拥有AKV访问权限:
az keyvault secret show --name <密钥名称> --vault-name <密钥保管库名称> --query "value" -o tsv
内容的提问来源于stack exchange,提问作者Luiz Viola
相关产品推荐
相关产品推荐

