Databricks OAuth トークン フェデレーション (OpenID Connect (OIDC) とも呼ばれます) を使用すると、Databricks の外部で実行されている自動化されたワークロードは、Databricks シークレットを必要とせずに Databricks に安全にアクセスできます。 OAuth トークン フェデレーションを使用した Azure Databricks へのアクセスの認証に関するページを参照してください。
Azure DevOps Pipelines のワークロード ID フェデレーションを有効にするには:
ワークロード ID フェデレーションを有効にすると、Databricks SDK と Databricks CLI によって、Azure DevOps Pipelines からワークロード ID トークンが自動的にフェッチされ、Databricks OAuth トークンと交換されます。
フェデレーション ポリシーを作成する
まず、カスタム ワークロード ID フェデレーション ポリシーを作成します。 手順については、「 サービス プリンシパルのフェデレーション ポリシーを構成する」を参照してください。 Azure DevOps の場合は、ポリシーに次の値を設定します。
-
発行者 URL:
https://vstoken.dev.azure.com/<org_id>。<org-id>は Azure DevOps 組織の GUID です -
観客:
api://AzureADTokenExchange -
件名:
p://<org-name>/<project-name>/<pipeline-name>ここで、<org-name>は Azure DevOps 組織名、<project-name>は Azure DevOps プロジェクト名、<pipeline-name>は Azure DevOps パイプラインの名前です
たとえば、次の Databricks CLI コマンドは、組織 ID 7f1078d6-b20d-4a20-9d88-05a2f0d645a3 のフェデレーション ポリシーと、 5581763342009999の Databricks サービス プリンシパルの数値 ID を作成します。
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://vstoken.dev.azure.com/7f1078d6-b20d-4a20-9d88-05a2f0d645a3",
"audiences": [
"api://AzureADTokenExchange"
],
"subject": "p://my-org/my-project/my-pipeline"
}
}
'
Azure DevOps Pipeline YAML の構成
次に、Azure DevOps Pipeline YAML ファイルを構成します。 以下の環境変数を設定します。
-
DATABRICKS_AUTH_TYPE:azure-devops-oidc -
DATABRICKS_HOST: Databricks ワークスペースの URL -
DATABRICKS_CLIENT_ID: サービス プリンシパル (アプリケーション) ID -
SYSTEM_ACCESSTOKEN:$(System.AccessToken)パイプライン変数をこの環境変数にマップします
trigger: none
pool: test # my self-hosted pool name
variables:
DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
DATABRICKS_AUTH_TYPE: azure-devops-oidc
DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r
steps:
- script: |
databricks current-user me
displayName: 'Display Databricks current user information'
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)