You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法向Azure KeyVault支持的Databricks范围添加密钥报错

问题现象

在Databricks创建Azure Key Vault(简称AKV)支持的密钥范围abc成功后,执行命令写入密钥时触发报错:

{"error_code":"BAD_REQUEST","message":"Cannot write secrets to Azure KeyVault-backed scope abc"}

复现操作基于Windows CMD环境,执行流程如下:

  1. 在Azure平台创建Key Vault资源
  2. 执行命令生成Databricks所需AAD令牌:az account get-access-token --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
  3. 将生成的AAD令牌添加到Windows系统环境变量
  4. 执行命令将AAD令牌写入Databricks配置文件:databricks configure --aad-token
  5. 执行命令创建AKV支持的密钥范围:databricks secrets create-scope --scope abc --scope-backend-type AZURE_KEYVAULT --resource-id <keyvault-id> --dns-name <keyvault-dns> --initial-manage-principal users
  6. 执行命令向范围添加密钥时触发上述报错:databricks secrets put --scope abc --key abc-key
根本原因

Azure Key Vault作为后端的Databricks密钥范围本质是只读映射层,不支持通过Databricks Secrets CLI/API直接写入密钥。
这类密钥范围不会在Databricks侧存储任何机密内容,仅对AKV中已存在的机密做映射引用,Databricks本身没有开放向对接AKV实例写入机密的通道,所有写入类操作都会直接被拦截返回请求错误。

排查解决步骤
  • 先确认密钥范围属性:执行databricks secrets get-scope --scope abc,如果返回结果中scope_backend_type字段值为AZURE_KEYVAULT,即可确认是只读映射范围,无需额外排查CLI配置、令牌权限类问题。
  • 直接在Azure Key Vault侧创建所需机密:进入对应AKV资源页,打开「机密」菜单选择「生成/导入」,填入和你计划在Databricks侧使用的key名完全一致的机密名称、对应机密值后保存即可。
  • 验证映射可用性:AKV侧创建完机密后无需在Databricks做额外同步操作,执行databricks secrets get --scope abc --key <你在AKV创建的机密名称>,如果能正常返回密钥元数据(密钥值默认掩码不可见),即表示配置生效,可直接在Databricks笔记本、作业中引用该密钥。
  • 若AKV创建机密后Databricks侧无法读取,检查两类权限配置:
    • Databricks工作区用于访问AKV的托管标识/服务主体,已在AKV访问策略中被授予「机密获取」权限
    • 当前执行CLI操作的AAD账号,同时拥有AKV的机密读取权限、Databricks工作区对应密钥范围的读取权限
  • 如果你确实需要通过databricks secrets put命令直接写入密钥,不要创建AKV后端类型的密钥范围,改为创建Databricks原生托管的密钥范围即可,这类范围的机密存储在Databricks自有托管存储中,支持通过CLI、API完成增删改查操作。

内容的提问来源于stack exchange,提问作者sotn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:24:26