如何从Databricks作用域列表获取Key Vault URL并匹配对应关系?
针对Databricks密钥作用域与Key Vault关联验证的解决方案
问题1:能否从Databricks作用域列表中获取Key Vault的URL?
可以。你可通过Databricks CLI或Databricks REST API获取密钥作用域关联的Key Vault URL,具体操作如下:
使用Databricks CLI:
先列出所有作用域:databricks secrets list-scopes针对目标作用域执行描述命令,输出结果的
backend_config字段会包含azure_key_vault配置,其中vault_uri即为Key Vault的URL:databricks secrets describe-scope --scope <scope-name>使用Databricks REST API:
调用GET /api/2.0/secrets/scopes/get接口并传入作用域名称,响应体的backend_config字段中可提取vault_uri值。
问题2:批量验证Databricks作用域对应的Key Vault
针对大量非自建的作用域,可通过脚本批量提取关联信息,步骤如下:
提前完成Databricks CLI的认证配置(或准备好API调用所需的认证令牌)。
编写批量处理脚本:
Bash脚本示例:#!/bin/bash # 获取所有作用域名称 scopes=$(databricks secrets list-scopes --output json | jq -r '.scopes[].name') # 遍历输出每个作用域对应的Key Vault URL for scope in $scopes; do echo "作用域名称: $scope" databricks secrets describe-scope --scope $scope --output json | jq -r '.backend_config.azure_key_vault.vault_uri // "未关联Key Vault"' echo "------------------------" donePython脚本示例(需安装
requests库):import requests # 替换为你的工作区URL和认证令牌 workspace_url = "https://<your-databricks-workspace-url>" auth_token = "<your-auth-token>" headers = {"Authorization": f"Bearer {auth_token}"} # 获取所有作用域列表 scopes_res = requests.get(f"{workspace_url}/api/2.0/secrets/scopes/list", headers=headers) scopes = scopes_res.json().get("scopes", []) # 批量提取关联信息 for scope in scopes: scope_name = scope["name"] desc_res = requests.get( f"{workspace_url}/api/2.0/secrets/scopes/get", headers=headers, params={"scope": scope_name} ) if desc_res.ok: kv_uri = desc_res.json().get("backend_config", {}).get("azure_key_vault", {}).get("vault_uri", "未关联Key Vault") print(f"作用域: {scope_name} -> Key Vault URL: {kv_uri}") else: print(f"获取作用域 {scope_name} 信息失败: {desc_res.text}")执行脚本后,会批量输出每个作用域对应的Key Vault URL,可将结果导出为文件进行核对。
注:若作用域为Databricks托管类型(非基于Key Vault),则不会返回azure_key_vault相关配置,无需验证关联关系。
内容的提问来源于stack exchange,提问作者KaroKaro
相关产品推荐
相关产品推荐

