KeyVault-> Databricks自动集成

时间:2019-07-12 12:49:27

标签: azure-keyvault azure-databricks

我已遵循Create an Azure Key Vault-backed secret scope将Databricks与Key Vault集成在一起,并且一切正常。不幸的是,这需要人工干预,这破坏了我们的“全自动基础架构”方法。有什么方法可以自动执行此步骤?

3 个答案:

答案 0 :(得分:1)

与Databricks支持的秘密范围创建不同,Azure Key Vault支持的秘密范围创建似乎没有公开可用的API调用。这由secret scopes doc page上的“注释”支持:

  

仅在Azure Databricks UI中支持创建Azure Vault Vault支持的秘密作用域。您不能使用Secrets CLI或API创建范围。

去年,您对所要功能进行了请求,但未提供预计到达时间。

我查看了UI页面发出的请求。尽管表单数据足够简单,但是标头和安全措施使编程访问不切实际。如果您对自动执行此部分不满意,可以使用其中一种工具,该工具可以自动在屏幕上移动光标并为您单击内容。

答案 1 :(得分:0)

现在可以,但是您不能使用服务主体令牌。它必须是妨碍自动化的用户令牌。

请参阅Microsoft文档: https://docs.microsoft.com/en-us/azure/databricks/security/secrets/secret-scopes#create-an-azure-key-vault-backed-secret-scope-using-the-databricks-cli

答案 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"
}