Aracılığıyla paylaş


GitHub Actions için iş yükü kimlik federasyonu etkinleştirme

OpenID Connect (OIDC) olarak da bilinen Databricks OAuth belirteci federasyonu, Databricks dışında çalışan otomatik iş yüklerinizin Databricks gizli dizilerine gerek kalmadan Databricks'e güvenli bir şekilde erişmesini sağlar. Bkz . OAuth belirteci federasyonu kullanarak Azure Databricks'e erişimin kimliğini doğrulama.

GitHub Actions için iş yükü kimlik federasyonu etkinleştirmek için:

  1. Federasyon ilkesi oluşturma
  2. GitHub Actions YAML dosyasını yapılandırma

İş yükü kimlik federasyonu etkinleştirildikten sonra Databricks SDK'ları ve Databricks CLI, GitHub'dan iş yükü kimlik belirteçlerini otomatik olarak getirir ve Bunları Databricks OAuth belirteçleri ile değiştirir.

Federasyon ilkesi oluşturma

İlk olarak bir iş yükü kimliği federasyon ilkesi oluşturun. Yönergeler için bkz. Hizmet sorumlusu federasyon ilkesi yapılandırma. GitHub için ilke için aşağıdaki değerleri ayarlayın:

  • Organizasyon: Github kuruluşunuzun adı. Örneğin, depo URL'niz ise https://github.com/databricks-inc/data-platformkuruluş şeklindedir databricks-inc.
  • Depo: İzin vermek için tek deponun adı, örneğin data-platform.
  • Varlık türü: Belirtecinizin (konu) talebinde temsil edilen sub GitHub varlığı türü. Varsayılan değer Branch'tir. Databricks, GitHub Actions YAML dosyanızda özniteliğini ayarlayarak etkinleştirebileceğiniz environment kullanmanızı önerir. Bkz. Belirli bir ortama dağıtma.
  • Veren URL'si:https://token.actions.githubusercontent.com
  • Konu: GitHub Actions iş bağlamından değerleri birleştirerek oluşturulan bir dize.
  • Hedef Kitle: Databricks, bunu Azure Databricks hesap kimliğinize ayarlamanızı önerir. Atlanırsa, hesap kimliği varsayılan olarak kullanılır.
  • Konu talebi: (İsteğe bağlı) OIDC belirtecinden iş yükü kimliği (sub) değerini içeren JWT talebi. GitHub için alanını, iş akışını tetikleyen depoyu, dalı, etiketi, çekme/birleştirme isteğini veya ortamı kodlayan olarak subbırakın.

Örneğin, aşağıdaki Databricks CLI komutu, adlı my-org bir kuruluş ve databricks hizmet sorumlusu sayısal kimliği 5581763342009999için bir federasyon ilkesi oluşturur:

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"
  }
}'

GitHub Actions YAML dosyasını yapılandırma

Ardından GitHub Actions YAML dosyasını yapılandırın. Aşağıdaki ortam değişkenlerini ayarlayın:

  • DATABRICKS_AUTH_TYPE: github-oidc
  • DATABRICKS_HOST: Databricks çalışma alanı URL'niz
  • DATABRICKS_CLIENT_ID: Hizmet sorumlusu (uygulama) kimliği
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