在 Azure Key Vault 支持的 Databricks 中创建秘密范围失败
Posted
技术标签:
【中文标题】在 Azure Key Vault 支持的 Databricks 中创建秘密范围失败【英文标题】:Creating a Secret Scope in Databricks backed by Azure Key Vault fails 【发布时间】:2019-10-25 11:49:59 【问题描述】:您可以在由 Azure Keyvault 支持的 Databricks 中创建范围,而不是使用 Databricks CLI。但是,当您尝试创建 Scope 时,会显示一条晦涩的错误消息(有拼写错误!)。似乎没有多少人遇到此错误:
“向 KeyVault 的 Databricks 服务主体授予读取/列表权限时发生内部错误:XYZ”
在这种情况下,将管理主体设置为所有用户没有帮助。
【问题讨论】:
【参考方案1】:我认为这是 Azure AD 中的服务主体问题。我登录 Databricks 时使用的这个特定用户不是 AD 贡献者,仅在 Databricks 和 Keyvault 服务上具有贡献者角色。我在 AD 中找不到 Databricks 的任何默认对象 ID,因此我假设它正在动态创建服务主体并将 Databricks 与 Keyvault 连接(我可能在这里错了 - 当您启用 Databricks 资源提供程序时它可能已经存在于 AD 中) .
以具有创建服务主体权限的管理员身份登录解决了该问题。之后,您可以在 Key Vault 中看到用于密钥检索的 DB 服务主体:
【讨论】:
“AzureDatabricks”服务主体已存在;它在 Azure Active Directory 中作为企业应用程序 (portal.azure.com/#blade/Microsoft_AAD_IAM/ManagedAppMenuBlade/…)。您不需要创建服务主体的权限即可使此过程正常工作,但您需要拥有 Key Vault 的所有者权限,以便它可以为“AzureDatabricks”创建访问策略。【参考方案2】:正如@rcabr 在他的上述评论中提到的,Enterprize 应用程序中已经有一个名为“AzureDatabricks”的 SP,您需要获取对象 ID 详细信息并将其添加到密钥保管库的访问策略中。这样,Databricks 将能够访问 KeyVault
【讨论】:
我试图在广告企业应用程序菜单中搜索这个企业应用程序,但无法找到。于是我直接去 KV IAM 搜索 AzureDataBricks 它出现并分配了以上是关于在 Azure Key Vault 支持的 Databricks 中创建秘密范围失败的主要内容,如果未能解决你的问题,请参考以下文章
如何保护 Azure Key Vault 中的 blob 存储访问密钥
Azure Key Vault 使用Azure Portal创建和查看Azure Key Vault