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

跨订阅场景下,如何通过Azure发布管道使用AZ Cli创建Key Vault托管的Databricks密钥范围

跨订阅场景下,如何通过Azure发布管道使用AZ Cli创建Key Vault托管的Databricks密钥范围

我来帮你梳理这个跨订阅场景下的实现细节,结合你给出的现有配置和命令,咱们一步步来优化和验证:

你的当前配置梳理

先确认下你提到的现有环境设置,确保咱们的分析是基于正确的前提:

  • Azure DevOps服务连接仅拥有目标Key Vault的Key Vault Contributor权限
  • Key Vault与Databricks集群处于不同的Azure订阅
  • 已将服务连接的对象ID加入Databricks管理员组
  • 限制条件:无法给其他主体分配Key Vault Contributor权限

修正后的完整命令示例

你当前的命令存在换行截断的问题,我帮你整理成可直接执行的完整命令,同时补充跨订阅场景下的关键参数:

# 安装databricks-cli工具
pip install databricks-cli

# 获取针对Databricks资源的访问令牌(指定Key Vault所在的订阅ID,确保服务连接能访问该订阅)
ACCESS_TOKEN=$(az account get-access-token --subscription <替换为KeyVault的订阅ID> --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d --query accessToken --output tsv)

# 设置Databricks环境变量(确保Host地址正确)
export DATABRICKS_HOST=https://xxxxx123445.12.azuredatabricks.net
export DATABRICKS_TOKEN=$ACCESS_TOKEN

# 创建Key Vault托管的密钥范围(修正参数换行,确保资源ID和DNS名称完整)
databricks secrets create-scope --scope 'nexussecret' \
  --scope-backend-type 'AZURE_KEYVAULT' \
  --resource-id '/subscriptions/xxxxxxxxxxbe5f-xxxxx/resourceGroups/rg-tst-we-test-keyvault/providers/Microsoft.KeyVault/vaults/eu-test--1xy' \
  --dns-name 'https://eu-test--1xy.vault.azure.net'

跨订阅场景下的关键注意事项

  1. 订阅权限验证:
    虽然服务连接有Key Vault的Contributor权限,但要确保它同时拥有Key Vault所在订阅的Reader权限(至少),否则az account get-access-token无法获取到有效的令牌来访问跨订阅的资源。

  2. Databricks权限确认:
    请再次验证服务连接的对象ID确实已经被添加到Databricks的管理员组中,默认管理员组拥有创建密钥范围的权限,但如果有自定义权限设置,需要确保该组的权限未被限制。

  3. 管道任务执行逻辑:
    在Azure发布管道中,建议将所有命令放在同一个Bash任务中执行,避免环境变量在不同任务间失效;如果是使用PowerShell任务,需要调整环境变量的设置方式(比如用$env:DATABRICKS_HOST代替export)。

  4. Key Vault防火墙配置:
    如果你的Key Vault启用了防火墙,需要做以下任一配置:

    • 允许Azure DevOps代理的IP地址访问Key Vault
    • 开启Key Vault的“允许受信任的Microsoft服务访问此密钥保管库”选项(Databricks属于受信任服务)

备注:内容来源于stack exchange,提问作者ramesh reddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 14:53:05