provisionamento a entidade de serviço utilizando Terraform
Para provisionar a Databricks entidade de serviço usando a interface de usuário Databricks, consulte entidade de serviço.
Uma entidade de serviço é uma identidade para ferramentas e sistemas automatizados, como scripts, aplicativos e plataformas CI/CD. Databricks recomenda o uso de uma entidade de serviço e seus tokens OAuth ou tokens de acesso pessoal em vez de seu usuário Databricks account e tokens de acesso pessoal. Os benefícios incluem:
- Conceder e restringir o acesso ao recurso independentemente de um usuário.
 - Permitir que os usuários protejam melhor seus próprios tokens de acesso.
 - Desativar ou excluir uma entidade de serviço sem afetar outros usuários.
 - Remover um usuário quando ele deixa a organização sem afetar nenhuma entidade de serviço.
 
Siga estas instruções para usar o provedorDatabricks Terraform para criar uma Databricks entidade de serviço em seu Databricks workspace e, em seguida, criar um Databricks tokens de acesso pessoal para a Databricks entidade de serviço.
Requisitos
- 
Um access token pessoal Databricks para permitir que o provedor Terraform Databricks chame as APIs Databricks em nome da sua account de usuário Databricks dentro do workspace Databricks . Para criar um access token pessoal, consulte Autenticar com access tokens pessoal Databricks (legado).
 - 
Databricks CLI versão 0.205 ou acima, configurado com um perfil de configuração de autenticação Databricks que faz referência aos tokens de acesso pessoal Databricks correspondentes. Para criar esse perfil de configuração, faça o seguinte:
 
O procedimento a seguir usa a CLI do Databricks para criar um perfil de configuração do Databricks com o nome DEFAULT. Se você já tiver um perfil de configuração DEFAULT, esse procedimento substitui seu perfil de configuração DEFAULT existente.
Para verificar se o senhor já tem um perfil de configuração DEFAULT e para view as configurações desse perfil, caso ele exista, use o link Databricks CLI para executar o comando databricks auth env --profile DEFAULT.
Para criar um perfil de configuração com um nome diferente de DEFAULT, substitua a parte DEFAULT de --profile DEFAULT no comando databricks configure a seguir por um nome diferente para o perfil de configuração.
- 
Use o para criar Databricks CLI um Databricks perfil de configuração chamado
DEFAULTque usa a Databricks autenticação de tokens de acesso pessoal. Para fazer isso, execute o seguinte comando:Bashdatabricks configure --profile DEFAULT - 
No prompt Databricks Host, digite o Databricks workspace URL da instância, por
https://1234567890123456.7.gcp.databricks.comexemplo,. - 
Para o prompt Access token pessoal , insira o access token pessoal do Databricks para seu workspace
 
- A CLI do Terraform. Consulte o download Terraform.
 
Crie os tokens de acesso pessoal Databricks entidade de serviço e Databricks
- 
No seu terminal, crie um diretório vazio e depois mude para ele. Cada conjunto separado de arquivos de configuração do Terraform deve estar em seu próprio diretório. Por exemplo:
mkdir terraform_service_principal_demo && cd terraform_service_principal_demo.Bashmkdir terraform_service_principal_demo && cd terraform_service_principal_demo - 
Nesse diretório vazio, crie um arquivo chamado
main.tf. Adicione o conteúdo a seguir a esse arquivo e salve-o. 
O conteúdo a seguir contém a declaração authorization = "tokens". Só pode haver um recurso de permissão authorization = "tokens" por Databricks workspace. Após aplicar as alterações a seguir, os usuários que anteriormente tinham permissão CAN_USE ou CAN_MANAGE terão seu acesso à autenticação baseada em tokens revogado. Seus tokens ativos também são imediatamente excluídos (revogados). Devido à natureza potencialmente disruptiva dessas operações, a configuração relacionada é comentada no arquivo main.tf.
Como alternativa, o senhor pode usar a interface de usuário Databricks para permitir que a Databricks entidade de serviço use tokens de acesso pessoal Databricks. Consulte gerenciar permissões de tokens de acesso pessoal. O senhor também pode usar a interface de usuário Databricks para gerar tokens de acesso pessoal Databricks para a entidade de serviço Databricks. Consulte gerenciar tokens para uma entidade de serviço.
O conteúdo a seguir cria uma entidade de serviço no nível Databricks workspace . Se o seu Databricks workspace estiver habilitado para federação de identidade, o conteúdo a seguir também sincronizará automaticamente a entidade de serviço com o Databricks account relacionado (consulte Atribuir usuários ao espaço de trabalho). Para criar uma entidade de serviço somente no nível Databricks account em vez de no nível workspace, consulte a seção "Creating entidade de serviço in AWS Databricks account" do recurso serviço na documentação do provedor Databricks Terraform .
Se o senhor optar por descomentar o recurso e a saída a seguir, também será gerado um token de acesso pessoal. Esses tokens de acesso pessoal podem ser usados pela entidade de serviço para automação somente dentro do site especificado Databricks workspace.
O senhor não pode usar o acesso pessoal tokens com entidade de serviço para Databricks account-level automation. Se o senhor tentar gerar tokens de acesso pessoal para uma entidade de serviço no nível Databricks account , a tentativa falhará.
variable "databricks_connection_profile" {
  description = "The name of the Databricks authentication configuration profile to use."
  type        = string
}
variable "service_principal_display_name" {
  description = "The display name for the service principal."
  type        = string
}
variable "service_principal_access_token_lifetime" {
  description = "The lifetime of the service principal's access token, in seconds."
  type        = number
  default     = 3600
}
terraform {
  required_providers {
    databricks = {
      source = "databricks/databricks"
    }
  }
}
provider "databricks" {
  profile = var.databricks_connection_profile
}
resource "databricks_service_principal" "sp" {
  provider     = databricks
  display_name = var.service_principal_display_name
}
# Uncomment the following "databricks_permissions" resource
# if you want to enable the service principal to use
# personal access tokens.
#
# Warning: uncommenting the following "databricks_permissions" resource
# causes users who previously had either CAN_USE or CAN_MANAGE permission
# to have their access to token-based authentication revoked.
# Their active tokens are also immediately deleted (revoked).
#
# Alternatively, you can enable this later through the Databricks user interface.
#
# resource "databricks_permissions" "token_usage" {
#   authorization    = "tokens"
#   access_control {
#     service_principal_name = databricks_service_principal.sp.application_id
#     permission_level       = "CAN_USE"
#   }
# }
#
# Uncomment the following "databricks_obo_token" resource and
# "service_principal_access_token" output if you want to generate
# a personal access token for service principal and then see the
# generated personal access token.
#
# If you uncomment the following "databricks_obo_token" resource and
# "service_principal_access_token" output, you must also
# uncomment the preceding "databricks_permissions" resource.
#
# Alternatively, you can generate a personal access token later through the
# Databricks user interface.
#
# resource "databricks_obo_token" "this" {
#   depends_on       = [databricks_permissions.token_usage]
#   application_id   = databricks_service_principal.sp.application_id
#   comment          = "Personal access token on behalf of ${databricks_service_principal.sp.display_name}"
#   lifetime_seconds = var.service_principal_access_token_lifetime
# }
output "service_principal_name" {
  value = databricks_service_principal.sp.display_name
}
output "service_principal_id" {
  value = databricks_service_principal.sp.application_id
}
# Uncomment the following "service_principal_access_token" output if
# you want to see the generated personal access token for the service principal.
#
# If you uncomment the following "service_principal_access_token" output, you must
# also uncomment the preceding "service_principal_access_token" resource and
# "databricks_obo_token" resource.
#
# output "service_principal_access_token" {
#   value     = databricks_obo_token.this.token_value
#   sensitive = true
# }
Para adicionar esta entidade de serviço aos grupos Databricks workspace e para adicionar os direitos Databricks workspace a esta entidade de serviço, consulte serviço no site Terraform.
- 
No mesmo diretório, crie um arquivo chamado
terraform.tfvars. Adicione o conteúdo a seguir a esse arquivo, substituindo os valores a seguir e salve o arquivo:- Substitua o valor 
databricks_connection_profilepelo nome do seu perfil de configuração de autenticação dos requisitos. - Substitua o valor 
service_principal_display_namepor um nome de exibição para a entidade de serviço. - Substitua o valor 
service_principal_access_token_lifetimepelo número de segundos do tempo de vida dos tokens de acesso da entidade de serviço. 
databricks_connection_profile = "<Databricks authentication configuration profile name>"
service_principal_display_name = "<Service principal display name>"
service_principal_access_token_lifetime = 3600 - Substitua o valor 
 - 
Inicialize o diretório de trabalho que contém o arquivo
main.tfexecutando o comandoterraform init. Para obter mais informações, consulte Comando: init no site do Terraform.Bashterraform init - 
Verifique se há algum erro de sintaxe na configuração executando o comando
terraform validate. Para obter mais informações, consulte o comando: validate no site Terraform.Bashterraform validate - 
Aplique as alterações necessárias para atingir o estado desejado da configuração executando o comando
terraform apply. Para obter mais informações, consulte Comando: aplique no site do Terraform.Bashterraform apply - 
Se o senhor descomentar o recurso
databricks_permissions, o recursodatabricks_obo_tokene a saídaservice_principal_access_token, para obter os tokens de acesso da entidade de serviço, consulte o valor deoutputs.service_principal_access_token.valueno arquivoterraform.tfstate, que está no diretório de trabalho que contém o arquivomain.tf.