在 Azure Key Vault 支持的 Databricks 中创建秘密范围失败

Creating a Secret Scope in Databricks backed by Azure Key Vault fails

您可以在 Azure Keyvault 支持的 Databricks 中创建范围,而不是使用 Databricks CLI。但是,当您尝试创建范围时,会显示一条模糊的错误消息(有拼写错误!)。看来遇到这个错误的人并不多:

"Internal error happened while granting read/list permission to Databricks ervice principal to KeyVault: XYZ"

在这种情况下,将管理主体设置为所有用户无济于事。

我认为这是 Azure AD 中的服务主体问题。我登录到 Databricks 的这个特定用户不是 AD 贡献者,并且只在 Databricks 和 Keyvault 服务上具有贡献者角色。我在 AD 中找不到 Databricks 的任何默认对象 ID,所以我假设它正在动态创建服务主体并将 Databricks 与 Keyvault 连接(我在这里可能是错的 - 当您启用 Databricks 资源提供程序时它可能已经存在于 AD 中) .

以具有创建服务主体权限的管理员身份登录解决了该问题。之后,您可以在 Key Vault 中看到用于密钥检索的 DB 服务主体:

正如@rcabr 在他上面的评论中提到的那样,在 Enterprise 应用程序中已经有一个名为 'AzureDatabricks' 的 SP,您需要获取对象 ID 详细信息并将其添加到密钥库的访问策略中。这样,Databricks 将能够访问 KeyVault