Azure Databricks访问KeyVault时出现PERMISSION_DENIED权限无效问题
问题解决:Azure Databricks访问KeyVault时的403权限拒绝错误
问题根源
你的KeyVault已启用Azure RBAC权限模型(替代了传统的访问策略机制),因此「访问策略」页面显示不可用;同时Azure Databricks的服务主体(appid=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d)未被分配对应RBAC权限,导致执行Microsoft.KeyVault/vaults/secrets/getSecret/action操作时被拒绝。
解决步骤
1. 确认KeyVault权限模型
进入Azure门户的目标KeyVault(p2keyvaultazdbricks),切换到「访问控制(IAM)」页面,顶部会显示提示:此密钥保管库使用Azure RBAC来管理权限,同时「访问策略」页面会显示「访问策略不可用」,验证当前使用RBAC模式。
2. 为Databricks服务主体分配RBAC角色
- 在KeyVault的「访问控制(IAM)」页面,点击「添加」→「添加角色分配」
- 在「角色」标签页,选择适配的权限角色:
- 仅需读取密钥:选择密钥保管库机密用户
- 需要管理密钥(创建/更新):选择密钥保管库机密官员
- 切换到「成员」标签页,点击「选择成员」,输入错误信息中的
appid=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d或服务主体名称AzureDatabricks,找到对应实体并选中 - 点击「查看 + 分配」完成角色分配,等待5-10分钟让RBAC权限生效(权限传播存在延迟)
3. 验证权限
重新运行Databricks中访问p2sastokenforstorage密钥的代码,确认是否能正常获取密钥内容。
注意事项
- 启用RBAC模式后,传统KeyVault访问策略不再生效,所有权限管理需通过「访问控制(IAM)」完成
- 确保角色分配范围正确(直接分配到目标KeyVault,或包含它的资源组/订阅)
- 若使用Databricks托管服务主体,务必选中错误信息中指定
appid对应的实体
内容的提问来源于stack exchange,提问作者BobbyG
相关产品推荐
相关产品推荐

