Pular para o conteúdo principal

Habilitar a federação de identidade de carga de trabalho para GitHub Actions

A federação de tokens OAuth do Databricks, também conhecida como OpenID Connect (OIDC), permite que suas cargas de trabalho automatizadas executadas fora do Databricks acessem o Databricks com segurança sem a necessidade de segredos do Databricks. Consulte Autenticar o acesso ao Databricks usando a federação de tokens OAuth.

Para habilitar a federação de identidade de carga de trabalho para GitHub Actions:

  1. Crie uma política de federação
  2. Configurar o arquivo YAML do GitHub Actions

Depois que o senhor ativar a federação de identidade da carga de trabalho, os SDKs da Databricks e a CLI da Databricks buscarão automaticamente os tokens de identidade da carga de trabalho do GitHub e os trocarão por tokens OAuth da Databricks.

Crie uma política de federação

Primeiro, crie uma política de federação de identidades de carga de trabalho. Para obter instruções, consulte Configurar uma política de federação de entidade de serviço. Para o GitHub, defina os seguintes valores para a política:

  • Organização: o nome da sua organização no Github. Por exemplo, se o URL do repositório for https://github.com/databricks-inc/data-platform, a organização será databricks-inc.
  • repositório: O nome do repositório único a ser permitido, como data-platform.
  • Tipo de entidade: O tipo de entidade GitHub representada na reivindicação sub (assunto) de seus tokens. O site default é Branch . A Databricks recomenda o uso do Environment , que o senhor pode ativar definindo o atributo environment no arquivo YAML do GitHub Actions. Veja implantado em um ambiente específico.
  • URL do emissor: https://token.actions.githubusercontent.com
  • Assunto: Uma cadeia de caracteres formada pela concatenação de valores do contexto do trabalho GitHub Actions.
  • Audiências: O URL do repositório. Se omitido, o ID Databricks account é usado por default.
  • Subject claim: (Opcional) A reivindicação JWT que contém o valor da identidade da carga de trabalho (sub) dos tokens OIDC. Para o GitHub, deixe o campo como sub, que codifica o repositório, o branch, a tag, a solicitação de pull/merge ou o ambiente que acionou o fluxo de trabalho.

Por exemplo, o seguinte Databricks CLI comando cria uma política de federação para uma organização chamada my-org e um ID numérico de entidade de serviço Databricks de 5581763342009999:

Bash
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://token.actions.githubusercontent.com",
"audiences": [
"https://github.com/my-org"
],
"subject": "repo:my-github-org/my-repo:environment:prod"
}
}'

Configurar o arquivo YAML do GitHub Actions

Em seguida, configure o arquivo YAML do GitHub Actions. Defina as seguintes variáveis de ambiente:

  • DATABRICKS_AUTH_TYPE: github-oidc
  • DATABRICKS_HOST: Seu URL Databricks workspace
  • DATABRICKS_CLIENT_ID: A ID da entidade de serviço (aplicativo)
YAML
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: workflow_dispatch

permissions:
id-token: write
contents: read

jobs:
my_script_using_wif:
runs-on: ubuntu-latest
environment: prod
env:
DATABRICKS_AUTH_TYPE: github-oidc
DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Databricks CLI
uses: databricks/setup-cli@main

- name: Run Databricks CLI commands
run: databricks current-user me