次の方法で共有


Microsoft Entra ID サービス プリンシパル認証

"Microsoft Entra ID サービス プリンシパル" 認証では、Microsoft Entra ID サービス プリンシパルの資格情報を使って認証を行います。 Azure Databricks サービス プリンシパルを作成および管理するには、次を参照してください。

Note

Databricks では、ほとんどのシナリオで Microsoft Entra ID サービス プリンシパル認証ではなく OAuth マシンツーマシン (M2M) 認証を使うことを推奨しています。 なぜなら、OAuth M2M 認証には、Azure Databricks でのみ認証する場合により堅牢である Azure Databricks OAuth アクセス トークンが使われるからです。

Microsoft Entra ID サービス プリンシパル認証は、Azure Databricks と他の Azure リソースを同時に認証する必要があり、Microsoft Entra ID トークンが必要な場合にのみ使用してください。

Microsoft Entra ID サービス プリンシパル認証の代わりに OAuth M2M 認証を使用するには、この記事をスキップし、「OAuth マシン間 (M2M) 認証」をご覧ください。

Microsoft Entra ID サービス プリンシパルは、Azure Databricks でも認証用にサポートされている Azure リソース用マネージド ID とは異なります。 Azure Databricks 認証に Microsoft Entra ID サービス プリンシパルではなく Azure リソース用マネージド ID を使用する方法については、「Azure Databricks の自動化のための Azure マネージド ID 認証の設定と使用」を参照してください。

Azure Databricks での Microsoft Entra ID サービス プリンシパル認証を構成するには、次の関連付けられた環境変数、.databrickscfg フィールド、Terraform フィールド、または Config フィールドを設定する必要があります。

  • Azure Databricks ホスト。

    • アカウント操作の場合は、https://accounts.azuredatabricks.net を指定します。

    • ワークスペース操作の場合は、ワークスペースごとの URL を指定します (例: https://adb-1234567890123456.7.azuredatabricks.net)。

      Microsoft Entra ID サービス プリンシパルがまだワークスペースに追加されていない場合は、代わりに Azure リソース ID を指定します。 この場合、Microsoft Entra ID サービス プリンシパルには、Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。

  • アカウント操作の場合は、Azure Databricks アカウント ID

  • Azure リソース ID。

  • Microsoft Entra ID サービス プリンシパルのテナント ID。

  • Microsoft Entra ID サービス プリンシパルのクライアント ID。

  • Microsoft Entra ID サービス プリンシパルのクライアント シークレット。

Azure Databricks での Microsoft Entra ID サービス プリンシパル認証を実行するには、関与するツールまたは SDK に基づいてコード内に以下を統合します。

環境

特定の Azure Databricks 認証の種類の環境変数をツールまたは SDK で使用するには、「Azure Databricks ツールまたは SDK でサポートされる認証の種類」や、ツールまたは SDK のドキュメントを参照してください。 「クライアント統合認証用の環境変数とフィールド」と「クライアント統合認証の方法と資格情報の既定の評価順序」も参照してください。

アカウントレベルの操作の場合、次の環境変数を設定します。

  • DATABRICKS_HOST。Azure Databricks アカウント コンソール URL (https://accounts.azuredatabricks.net) の値に設定します。
  • DATABRICKS_ACCOUNT_ID
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

ワークスペースレベルの操作の場合は、次の環境変数を設定します。

  • DATABRICKS_HOST。Azure Databricks のワークスペースごとの URL (例: https://adb-1234567890123456.7.azuredatabricks.net) に設定します。
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

ワークスペース レベルの操作の場合、Microsoft Entra ID サービス プリンシパルがまだワークスペースに追加されていない場合は、ワークスペース URL と共に HOST を指定するのではなく、Azure Databricks ワークスペースの Azure リソース ID と共に DATABRICKS_AZURE_RESOURCE_ID を指定します。 この場合、Microsoft Entra ID サービス プリンシパルには、Azure Databricks ワークスペースの Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。

プロファイル

.databrickscfg ファイルで次のフィールドを使用して、Azure Databricks 構成プロファイルを作成または識別します 。 プロファイルを作成する場合は、プレースホルダーを適切な値に置き換えます。 詳細については、次のセクションと「Azure Databricks ツールまたは SDK でサポートされる認証の種類」や、ツールまたは SDK のドキュメントを参照してください。 「クライアント統合認証用の環境変数とフィールド」と「クライアント統合認証の方法と資格情報の既定の評価順序」も参照してください。

アカウントレベルの操作の場合、.databrickscfg ファイルで次の値を設定します。 この場合、Azure Databricks アカウント コンソール の URL は https://accounts.azuredatabricks.net です。

[<some-unique-configuration-profile-name>]
host                = <account-console-url>
account_id          = <account-id>
azure_tenant_id     = <azure-service-principal-tenant-id>
azure_client_id     = <azure-service-principal-application-id>
azure_client_secret = <azure-service-principal-client-secret>

ワークスペース レベルの操作の場合は、.databrickscfg ファイルに次の値を設定します。 この場合、ホストは Azure Databricks のワークスペースごとの URL です (例: https://adb-1234567890123456.7.azuredatabricks.net)。

[<some-unique-configuration-profile-name>]
host                = <workspace-url>
azure_tenant_id     = <azure-service-principal-tenant-id>
azure_client_id     = <azure-service-principal-application-id>
azure_client_secret = <azure-service-principal-client-secret>

ワークスペース レベルの操作の場合、Microsoft Entra ID サービス プリンシパルがまだワークスペースに追加されていない場合は、ワークスペース URL と共に host を指定するのではなく、Azure Databricks ワークスペースの Azure リソース ID と共に azure_workspace_resource_id を指定します。 この場合、Microsoft Entra ID サービス プリンシパルには、Azure Databricks ワークスペースの Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。

CLI

Databricks CLI の場合は、次のいずれかを行います。

  • この記事の「環境」セクションで指定されているように環境変数を設定します。
  • この記事の「プロファイル」セクションで指定されているように .databrickscfg ファイルの値を設定します。

環境変数は、.databrickscfg ファイル内の値よりも常に優先されます。

Microsoft Entra ID サービス プリンシパルの認証」も参照してください。

のインスタンスに接続するときには、

Note

Microsoft Entra ID サービス プリンシパル認証は、次の Databricks Connect バージョンでサポートされています。

  • Python の場合、Databricks Connect for Databricks Runtime 13.1 以降。
  • Scala の場合、Databricks Connect for Databricks Runtime 13.3 LTS 以降。

Databricks Connect の場合は、次のいずれかを行うことができます。

.databrickscfg ファイル内の値は、環境変数よりも常に優先されます。

これらの環境変数または .databrickscfg ファイル内の値を使用して Databricks Connect クライアントを初期化するには、次のいずれかを参照してください。

VS Code

Visual Studio Code 用 Databricks 拡張機能の場合は、次を実行します。

  1. この記事の「プロファイル」セクションで指定されているように、Azure Databricks ワークスペースレベルの操作.databrickscfg ファイル内の値を設定します。
  2. Visual Studio Code 用の Databricks 拡張機能の [構成] ペインで、[Databricks の構成] をクリックします。
  3. コマンド パレットDatabricks Host に、ワークスペースごとの URL (例: https://adb-1234567890123456.7.azuredatabricks.net) を入力し、Enter キーを押します。
  4. コマンド パレットで、URL の一覧からターゲット プロファイルの名前を選択します。

詳細については、「VS Code 用 Databricks 拡張機能の認証設定」を参照してください。

Terraform

アカウントレベルの操作の場合 (既定の認証の場合):

provider "databricks" {
  alias = "accounts"
}

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは HashiCorp Vault などの他の構成ストアから値を取得します。Vault Provider もご覧ください)。 この場合、Azure Databricks アカウント コンソール の URL は https://accounts.azuredatabricks.net です。

provider "databricks" {
  alias               = "accounts"
  host                = <retrieve-account-console-url>
  account_id          = <retrieve-account-id>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

ワークスペースレベルの操作の場合 (既定の認証の場合):

provider "databricks" {
  alias = "workspace"
}

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは HashiCorp Vault などの他の構成ストアから値を取得します。Vault Provider もご覧ください)。 この場合、ホストは Azure Databricks のワークスペースごとの URL です (例: https://adb-1234567890123456.7.azuredatabricks.net)。

provider "databricks" {
  alias               = "workspace"
  host                = <retrieve-workspace-url>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

ワークスペース レベルの操作の場合、Microsoft Entra ID サービス プリンシパルがまだワークスペースに追加されていない場合は、ワークスペース URL と共に host を指定するのではなく、Azure Databricks ワークスペースの Azure リソース ID と共に azure_workspace_resource_id を指定します。 この場合、Microsoft Entra ID サービス プリンシパルには、Azure Databricks ワークスペースの Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。

Databricks Terraform プロバイダーを使用した認証の詳細については、「認証」を参照してください。

Python

アカウントレベルの操作の場合 (既定の認証の場合):

from databricks.sdk import AccountClient

a = AccountClient()
# ...

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは Azure KeyVault のような他の構成ストアから値を取得します)。 この場合、Azure Databricks アカウント コンソール の URL は https://accounts.azuredatabricks.net です。

from databricks.sdk import AccountClient

a = AccountClient(
  host                = retrieve_account_console_url(),
  account_id          = retrieve_account_id(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

ワークスペースレベルの操作の場合 (既定の認証の場合):

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは Azure KeyVault のような他の構成ストアから値を取得します)。 この場合、ホストは Azure Databricks のワークスペースごとの URL です (例: https://adb-1234567890123456.7.azuredatabricks.net)。

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host                = retrieve_workspace_url(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

ワークスペース レベルの操作の場合、Microsoft Entra ID サービス プリンシパルがまだワークスペースに追加されていない場合は、ワークスペース URL と共に host を指定するのではなく、Azure Databricks ワークスペースの Azure リソース ID と共に azure_workspace_resource_id を指定します。 この場合、Microsoft Entra ID サービス プリンシパルには、Azure Databricks ワークスペースの Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。

Python を使用し、Databricks クライアント統合認証を実装した Databricks ツールや SDK を使用した認証については、以下を参照してください。

Java

アカウントレベルの操作の場合 (既定の認証の場合):

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは Azure KeyVault のような他の構成ストアから値を取得します)。 この場合、Azure Databricks アカウント コンソール の URL は https://accounts.azuredatabricks.net です。

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
AccountClient a = new AccountClient(cfg);
// ...

ワークスペースレベルの操作の場合 (既定の認証の場合):

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは Azure KeyVault のような他の構成ストアから値を取得します)。 この場合、ホストは Azure Databricks のワークスペースごとの URL です (例: https://adb-1234567890123456.7.azuredatabricks.net)。

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

ワークスペース レベルの操作の場合、Microsoft Entra ID サービス プリンシパルがまだワークスペースに追加されていない場合は、ワークスペース URL と共に setHost を指定するのではなく、Azure Databricks ワークスペースの Azure リソース ID と共に setAzureWorkspaceResourceId を指定します。 この場合、Microsoft Entra ID サービス プリンシパルには、Azure Databricks ワークスペースの Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。

Java を使用し、Databricks クライアント統合認証を実装した Databricks ツールや SDK を使用した認証については、以下を参照してください。

Go

アカウントレベルの操作の場合 (既定の認証の場合):

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは Azure KeyVault のような他の構成ストアから値を取得します)。 この場合、Azure Databricks アカウント コンソール の URL は https://accounts.azuredatabricks.net です。

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:              retrieveAccountConsoleUrl(),
  AccountId:         retrieveAccountId(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

ワークスペースレベルの操作の場合 (既定の認証の場合):

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは Azure KeyVault のような他の構成ストアから値を取得します)。 この場合、ホストは Azure Databricks のワークスペースごとの URL です (例: https://adb-1234567890123456.7.azuredatabricks.net)。

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:              retrieveWorkspaceUrl(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

ワークスペース レベルの操作の場合、Microsoft Entra ID サービス プリンシパルがまだワークスペースに追加されていない場合は、ワークスペース URL と共に Host を指定するのではなく、Azure Databricks ワークスペースの Azure リソース ID と共に AzureWorkspaceResourceId を指定します。 この場合、Microsoft Entra ID サービス プリンシパルには、Azure Databricks ワークスペースの Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。

Go を使用し、Databricks クライアント統合認証を実装する Databricks ツールおよび SDK を使用した認証の詳細については、「Azure Databricks アカウントまたはワークスペースで Databricks SDK for Go を認証する」を参照してください。