Compartir a través de


Habilitar la federación de identidades de trabajo para GitHub Actions

La federación de tokens de OAuth de Databricks, también conocida como OpenID Connect (OIDC), permite que las cargas de trabajo automatizadas que se ejecutan fuera de Databricks accedan de forma segura a Databricks sin necesidad de secretos de Databricks. Consulte Autenticación del acceso a Azure Databricks mediante la federación de tokens de OAuth.

Para habilitar la federación de identidades de cargas de trabajo para GitHub Actions:

  1. Creación de una directiva de federación
  2. Configuración del archivo YAML de Acciones de GitHub

Después de habilitar la federación de identidades de carga de trabajo, los SDK de Databricks y la CLI de Databricks capturan automáticamente los tokens de identidad de carga de trabajo de GitHub y los intercambian para tokens de OAuth de Databricks.

Creación de una directiva de federación

En primer lugar, cree una directiva de federación de identidades de carga de trabajo. Para obtener instrucciones, consulte Configuración de una directiva de federación de entidad de servicio. En GitHub, establezca los valores siguientes para la directiva:

  • Organización: Nombre de la organización de GitHub. Por ejemplo, si la dirección URL del repositorio es https://github.com/databricks-inc/data-platform, la organización es databricks-inc.
  • Depósito: Nombre del repositorio único que se va a permitir, como data-platform.
  • Tipo de entidad: El tipo de entidad de GitHub representada en la sub notificación (subject) del token. El valor predeterminado es Branch. Databricks recomienda usar Environment, que puede habilitar estableciendo el atributo en el environment archivo YAML de Acciones de GitHub. Consulte Implementación en un entorno específico.
  • Dirección URL del emisor:https://token.actions.githubusercontent.com
  • Asunto: Cadena formada por la concatenación de valores del contexto del trabajo acciones de GitHub.
  • Audiencias: Databricks recomienda establecerlo en el identificador de la cuenta de Azure Databricks. Si se omite, el identificador de cuenta se usa de forma predeterminada.
  • Notificación de asunto: (opcional) La notificación JWT que contiene el valor de identidad de carga de trabajo (sub) del token OIDC. En GitHub, deje el campo como sub, que codifica el repositorio, la rama, la etiqueta, la solicitud de extracción y combinación o el entorno que desencadenó el flujo de trabajo.

Por ejemplo, el siguiente comando de la CLI de Databricks crea una directiva de federación para una organización denominada my-org y un identificador numérico numérico de la entidad de servicio de Databricks de 5581763342009999:

databricks account service-principal-federation-policy create 5581763342009999 --json '{
  "oidc_policy": {
	"issuer": "https://token.actions.githubusercontent.com",
	"audiences": [
  	  "a2222dd9-33f6-455z-8888-999fbbd77900"
	],
	"subject": "repo:my-github-org/my-repo:environment:prod"
  }
}'

Configuración del archivo YAML de Acciones de GitHub

A continuación, configure el archivo YAML de Acciones de GitHub. Establezca estas variables de entorno:

  • DATABRICKS_AUTH_TYPE: github-oidc
  • DATABRICKS_HOST: dirección URL del área de trabajo de Databricks
  • DATABRICKS_CLIENT_ID: identificador de la entidad de servicio (aplicación)
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