Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Federacja tokenów OAuth w Databricks, znana również jako OpenID Connect (OIDC), umożliwia automatyczne obciążenia działające z poza Databricks do bezpiecznego uzyskania dostępu do Databricks bez użycia tajnych kluczy Databricks. Zobacz Uwierzytelnianie dostępu do usługi Azure Databricks przy użyciu federacji tokenów OAuth.
Aby włączyć federację tożsamości operacji dla funkcji GitHub Actions:
Po włączeniu federacji tożsamości obciążenia zestawy SDK usługi Databricks i interfejs wiersza polecenia usługi Databricks automatycznie pobierają tokeny tożsamości obciążenia z usługi GitHub i wymieniają je dla tokenów OAuth usługi Databricks.
Tworzenie zasad federacji
Najpierw utwórz politykę federacji tożsamości obciążeń roboczych. Aby uzyskać instrukcje, zobacz Konfigurowanie zasad federacyjnych jednostki usługi. W przypadku usługi GitHub ustaw następujące wartości dla polisy:
-
Organizacja: Nazwa organizacji usługi GitHub. Jeśli na przykład adres URL repozytorium to
https://github.com/databricks-inc/data-platform, organizacja todatabricks-inc. -
Repozytorium: Nazwa pojedynczego repozytorium do dopuszczenia, takie jak
data-platform. -
Typ jednostki: Rodzaj jednostki GitHub reprezentowany w oświadczeniu (podmiocie)
subtokenu. Wartość domyślna to Gałąź. Databricks zaleca korzystanie z Environment, które można włączyć, ustawiając atrybutenvironmentw pliku YAML usługi GitHub Actions. Zobacz Wdrażanie w określonym środowisku. -
Adres URL wystawcy:
https://token.actions.githubusercontent.com - Temat: Ciąg utworzony przez łączenie wartości z kontekstu zadania funkcji GitHub Actions.
- Odbiorcy: Usługa Databricks zaleca ustawienie tego na ID konta usługi Azure Databricks. W przypadku pominięcia identyfikator konta jest używany domyślnie.
-
Oświadczenie podmiotu: (opcjonalnie) Oświadczenie JWT, które zawiera wartość tożsamości obciążenia (
sub) z tokenu OIDC. W przypadku usługi GitHub pozostaw pole jakosub, które koduje repozytorium, gałąź, tag, żądanie scalania lub środowisko, które wyzwoliło proces. Aby uwierzytelnić się jako przepływ pracy wielokrotnego użytku, a nie repozytorium wywołujące, zobacz Uwierzytelnianie przy użyciu przepływu pracy wielokrotnego użytku.
Na przykład, następujące polecenie CLI Databricks tworzy zasady federacji dla organizacji o nazwie my-org i numerycznego identyfikatora głównego usługi Databricks 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"
}
}'
Skonfiguruj plik YAML GitHub Actions
Następnie skonfiguruj plik YAML funkcji GitHub Actions. Ustaw następujące zmienne środowiskowe:
-
DATABRICKS_AUTH_TYPE:github-oidc -
DATABRICKS_HOST: Adres URL obszaru roboczego usługi Databricks -
DATABRICKS_CLIENT_ID: identyfikator podmiotu usługi (aplikacji)
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
Uwierzytelnianie przy użyciu przepływu pracy wielokrotnego użytku
Domyślnie sub żądanie identyfikuje repozytorium wywołujące. Aby uwierzytelnić się jako przepływ pracy wielokrotnego użytku, a nie repozytorium wywołujące, ustaw wartość subject_claim na job_workflow_ref w zasadach federacji. Każdy zespół może wywołać przepływ pracy wielokrotnego użytku, ale tylko ten przepływ pracy uwierzytelnia się w usłudze Databricks.
Tworzenie zasad federacji
Utwórz zasady federacji przy użyciu job_workflow_ref jako oświadczenia podmiotu. Ustaw subject wartość ref pliku przepływu pracy wielokrotnego użytku:
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://token.actions.githubusercontent.com",
"audiences": [
"a2222dd9-33f6-455z-8888-999fbbd77900"
],
"subject": "my-github-org/shared-workflows/.github/workflows/deploy.yml@refs/heads/main",
"subject_claim": "job_workflow_ref"
}
}'
Konfiguruj pliki YAML GitHub Actions
Utwórz przepływ pracy wielokrotnego użytku, który uwierzytelnia się za pomocą Azure Databricks, oraz wywołujący go przepływ pracy w dowolnym repozytorium.
W poniższym przykładzie przedstawiono plik przepływu pracy wielokrotnego użycia (.github/workflows/deploy.yml w repozytorium wspólnych przepływów pracy):
on:
workflow_call:
jobs:
deploy:
runs-on: ubuntu-latest
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
W poniższym przykładzie pokazano wywołanie przepływu pracy w dowolnym repozytorium, który używa przepływu pracy wielokrotnego zastosowania.
on: workflow_dispatch
permissions:
id-token: write
contents: read
jobs:
call-deploy:
uses: my-github-org/shared-workflows/.github/workflows/deploy.yml@main
Note
Ustaw permissions: id-token: write w przepływie pracy wywoływanym, a nie w przepływie pracy wielokrotnego użytku. GitHub zawiera oświadczenie job_workflow_ref w tokenie OIDC tylko wtedy, gdy id-token: write jest udzielone w kontekście wywoływanego przepływu pracy.