Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A federação de token OAuth do Databricks, também conhecida como OpenID Connect (OIDC), permite que suas cargas de trabalho automatizadas em execução fora do Databricks acessem com segurança o Databricks sem a necessidade de segredos do Databricks. Consulte Autenticar o acesso ao Azure Databricks usando a federação de token OAuth.
Para habilitar a federação de identidade de carga de trabalho no CI/CD do GitLab:
Depois de habilitar a federação de identidade de carga de trabalho, os SDKs do Databricks e a CLI do Databricks buscam automaticamente tokens de identidade de carga de trabalho do GitLab CI/CD e os trocam por tokens OAuth do Databricks.
Criar uma política de federação
Primeiro, crie uma política de federação de identidade de carga de trabalho. Para obter instruções, consulte Configurar uma política de federação da entidade de serviço. Para o GitLab CI/CD, defina os seguintes valores:
-
Grupo: O nome do grupo do GitLab. Por exemplo, se a URL do projeto for
https://gitlab.com/databricks-inc/data-platform, então o grupo édatabricks-inc. -
Projeto: O nome do único projeto do GitLab a ser permitido, como
data-platform. -
Tipo de ref: O tipo de referência Git representada na declaração
sub(assunto) do token. Isso pode ser Branch, Tag ou Merge request. - URL do emissor: A URL da instância do GitLab que emite o token OIDC.
- Assunto: Uma concatenação de valores obtidos do contexto do trabalho.
-
Destinatários: O valor esperado
audno token OIDC. Configure isso noid_tokens:bloco do seu trabalho. O Databricks recomenda defini-lo para sua ID de conta do Azure Databricks. -
Declaração do assunto: (Opcional) A declaração JWT que contém o valor da identidade da carga de trabalho (
sub) do token OIDC. Para o GitLab, deixe o campo comosub, que codifica o projeto, branch, tag ou merge request que acionou o pipeline.
Por exemplo, o seguinte comando CLI do Databricks cria uma política de federação para uma ID numérica da entidade de serviço Databricks de 5581763342009999:
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://gitlab.com/example-group",
"audiences": [
"a2222dd9-33f6-455z-8888-999fbbd77900"
],
"subject": "project_path:my-group/my-project:..."
}
}'
Configurar o arquivo YAML do GitLab
Em seguida, modifique o arquivo de configuração do GitLab. Altere <databricks-account-id> para o ID da sua conta do Azure Databricks.
Além de configurar as variáveis de ambiente do workspace listadas a seguir, armazene o token na variável de ambiente do DATABRICKS_OIDC_TOKEN Azure Databricks. Como alternativa, use uma variável de ambiente personalizada e defina DATABRICKS_OIDC_TOKEN_ENV.
-
DATABRICKS_AUTH_TYPE:env-oidc -
DATABRICKS_HOST: A URL do seu workspace do Databricks -
DATABRICKS_CLIENT_ID: A ID da entidade de serviço (aplicativo)
spec:
inputs:
# Specify your Databricks account ID, workspace hostname, and service principal OAuth client ID.
databricks-account-id:
databricks-host:
databricks-client-id:
# See https://docs.gitlab.com/ci/inputs/#define-input-parameters-with-specinputs for more on pipeline input variables.
---
stages:
- my_script_using_wif
variables:
DATABRICKS_AUTH_TYPE: env-oidc
DATABRICKS_HOST: $[[ inputs.databricks-host ]]
DATABRICKS_CLIENT_ID: $[[ inputs.databricks-client-id ]]
my_script_using_wif:
id_tokens:
DATABRICKS_OIDC_TOKEN:
aud: $[[ inputs.databricks-account-id ]]
stage: my_script_using_wif
image: ubuntu:latest
before_script:
- apt-get update -y
- apt-get install -y curl unzip
- curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
script:
- databricks current-user me