我已遵循Create an Azure Key Vault-backed secret scope将Databricks与Key Vault集成在一起,并且一切正常。不幸的是,这需要人工干预,这破坏了我们的“全自动基础架构”方法。有什么方法可以自动执行此步骤?
答案 0 :(得分:1)
与Databricks支持的秘密范围创建不同,Azure Key Vault支持的秘密范围创建似乎没有公开可用的API调用。这由secret scopes doc page上的“注释”支持:
仅在Azure Databricks UI中支持创建Azure Vault Vault支持的秘密作用域。您不能使用Secrets CLI或API创建范围。
去年,您对所要功能进行了请求,但未提供预计到达时间。
我查看了UI页面发出的请求。尽管表单数据足够简单,但是标头和安全措施使编程访问不切实际。如果您对自动执行此部分不满意,可以使用其中一种工具,该工具可以自动在屏幕上移动光标并为您单击内容。
答案 1 :(得分:0)
现在可以,但是您不能使用服务主体令牌。它必须是妨碍自动化的用户令牌。
答案 2 :(得分:0)
您可以使用Databricks Terraform provider创建由Azure KeyVault烘焙的秘密范围。与databricks-cli方法的主要区别在于,它支持不同的authentication methods on Azure,包括使用服务主体和Azure CLI进行身份验证。
这是从现有KeyVault创建机密范围的有效代码段:
terraform {
required_providers {
databricks = {
source = "databrickslabs/databricks"
version = "0.2.9"
}
}
}
provider "azurerm" {
version = "2.33.0"
features {}
}
data "azurerm_databricks_workspace" "example" {
name = var.workspace_name
resource_group_name = var.resource_group
}
provider "databricks" {
azure_workspace_resource_id = data.azurerm_databricks_workspace.example.id
}
data "azurerm_key_vault" "example" {
name = var.keyvault_name
resource_group_name = var.resource_group
}
resource "databricks_secret_scope" "example" {
name = data.azurerm_key_vault.example.name
keyvault_metadata {
resource_id = data.azurerm_key_vault.example.id
dns_name = data.azurerm_key_vault.example.vault_uri
}
}
variable resource_group {
type = string
description = "Resource group to deploy"
}
variable workspace_name {
type = string
description = "The name of DB Workspace"
}
variable keyvault_name {
type = string
description = "The name of DB Workspace"
}