使用Rest API和Databricks CLI创建Azure KeyVault后端密钥范围遇错求助
解决Databricks密钥范围关联Azure KeyVault的常见问题
错误1:Scope with Azure KeyVault must have userAADToken defined!
该错误表明调用REST API创建密钥范围时,必须携带有效的AAD用户令牌,处理步骤如下:
- 确保获取的AAD令牌针对
https://databricks.azure.net/资源(而非KeyVault),可通过Azure CLI执行以下命令获取:az account get-access-token --resource https://databricks.azure.net/ --query accessToken -o tsv - 调用REST API时,请求头添加
Authorization: Bearer <你的AAD令牌>,同时在请求体的userAADToken字段填入同一令牌。示例请求体:{ "scope": "your-scope-name", "scope_backend_type": "AZURE_KEYVAULT", "backend_azure_keyvault": { "resource_id": "/subscriptions/<订阅ID>/resourceGroups/<资源组>/providers/Microsoft.KeyVault/vaults/<密钥库名称>", "dns_name": "https://<密钥库名称>.vault.azure.net/" }, "userAADToken": "<你的AAD令牌>" }
错误2:Databricks CLI执行list-scopes返回Bad Request
此问题多与CLI身份验证配置相关,排查步骤:
- 检查CLI配置文件(通常在
~/.databrickscfg):若用AAD令牌认证,需添加aad_token字段,同时确保host字段为正确的Databricks工作区URL(格式如https://<区域>.azuredatabricks.net);若用个人访问令牌,确认token字段有效。 - 重新配置CLI的正确方式:
执行后依次输入工作区URL和针对databricks configure --aad-tokenhttps://databricks.azure.net/的AAD令牌。 - 确认命令拼写正确:需执行
databricks secrets list-scopes,而非list-scopes。
AAD令牌获取失败通用排查
- 确保当前Azure CLI登录账号拥有Databricks工作区管理员权限,以及Azure KeyVault的访问策略权限(至少含密钥读取权限)。
- 若账号启用MFA,需通过设备码方式登录获取令牌:
az login --use-device-code - 确认当前订阅为目标订阅,可通过以下命令切换:
az account set --subscription <订阅ID>
内容的提问来源于stack exchange,提问作者Syamala Kumar Rama Koti Reddy
相关产品推荐
相关产品推荐

