Azure マネージド ID 認証
Azure マネージド ID 認証では、Azure Databricks を認証するために、Azure リソース用マネージド ID (旧 Managed Service Identities (MSI)) を使用します。 Azure VM などのマネージド ID をサポートする Azure リソースを操作する場合、Azure Databricks アカウントおよびワークスペース操作に対するプログラム呼び出しは、このマネージド ID を使用します。
- マネージド ID の詳細については、「Azure リソースのマネージド ID とは」を参照してください。
- マネージド ID を作成し、Azure Databricks アカウントとワークスペースにアクセスするためのアクセス許可を付与する方法については、「Azure Databricks 自動化のための Azure マネージド ID 認証の設定と使用」を参照してください。
Note
Azure リソースのマネージド ID は、Azure Databricks でも認証をサポートする Microsoft Entra ID サービス プリンシパルとは異なります。 Azure リソースのマネージド ID の代わりに Azure Databricks 認証に Microsoft Entra ID サービス プリンシパルを使用する方法については、次を参照してください。
Azure マネージド ID 認証は、Azure 仮想マシン (Azure VM) などのマネージド ID をサポートする適切に構成されたリソースと、Azure Databricks アカウントおよびワークスペースの間でのみサポートされます。
Azure Databricks での Azure マネージド ID 認証を構成するには、次の関連する環境変数、.databrickscfg
フィールド、Terraform フィールド、または Config
フィールドを適切にサポートされている Azure VM 上で設定する必要があります。
- Azure Databricks ホスト。
- アカウント操作の場合は、
https://accounts.azuredatabricks.net
を指定します。 - ワークスペース操作の場合は、ワークスペースごとの URL を指定します (例:
https://adb-1234567890123456.7.azuredatabricks.net
)。
- アカウント操作の場合は、
- アカウント操作の場合は、Azure Databricks アカウント ID。
- マネージド ID のテナント ID。
- マネージド ID のクライアント ID。
- Azure リソース ID。
- Azure マネージド ID の使用を true に設定します。
Azure Databricks での Azure マネージド ID 認証を実行するには、関与するツールまたは SDK に基づいて、コード内に以下を統合します。
環境
ツールまたは SDK で特定の Azure Databricks 認証の種類に環境変数を使用するには、「Azure Databricks ツールと API の認証」またはツールまたは SDK のドキュメントを参照してください。 「クライアント統合認証の環境変数とフィールド」、および「クライアント統合認証のデフォルトの方法」も参照してください。
アカウントレベルの操作の場合、次の環境変数を設定します。
DATABRICKS_HOST
。Azure Databricks アカウント コンソール URL (https://accounts.azuredatabricks.net
) の値に設定します。DATABRICKS_ACCOUNT_ID
ARM_CLIENT_ID
ARM_USE_MSI
は、true
に設定されます。
ワークスペースレベルの操作の場合は、次の環境変数を設定します。
DATABRICKS_HOST
。Azure Databricks のワークスペースごとの URL (例:https://adb-1234567890123456.7.azuredatabricks.net
) に設定します。ARM_CLIENT_ID
ARM_USE_MSI
は、true
に設定されます。
ワークスペース レベルの操作の場合、ターゲット ID がまだワークスペースに追加されていない場合は、ワークスペース URL と共に DATABRICKS_HOST
を指定するのではなく、Azure Databricks ワークスペースの Azure リソース ID と共に DATABRICKS_AZURE_RESOURCE_ID
を指定します。 この場合、ターゲット ID には、Azure Databricks ワークスペースの Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。
プロファイル
.databrickscfg
ファイルで次のフィールドを使用して、Azure Databricks 構成プロファイルを作成または識別します 。 プロファイルを作成する場合は、プレースホルダーを適切な値に置き換えます。 ツールまたは SDK でプロファイルを使用するには、「Azure Databricks リソースへのアクセスの認証」またはツールまたは SDK のドキュメントを参照してください。 「クライアント統合認証の環境変数とフィールド」、および「クライアント統合認証のデフォルトの方法」も参照してください。
アカウントレベルの操作の場合、.databrickscfg
ファイルで次の値を設定します。 この場合、Azure Databricks アカウント コンソール の URL は https://accounts.azuredatabricks.net
です。
[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
azure_client_id = <azure-managed-identity-application-id>
azure_use_msi = true
ワークスペース レベルの操作の場合は、.databrickscfg
ファイルに次の値を設定します。 この場合、ホストは Azure Databricks のワークスペースごとの URL です (例: https://adb-1234567890123456.7.azuredatabricks.net
)。
[<some-unique-configuration-profile-name>]
host = <workspace-url>
azure_client_id = <azure-managed-identity-application-id>
azure_use_msi = true
ワークスペース レベルの操作の場合、ターゲット ID がまだワークスペースに追加されていない場合は、ワークスペース URL と共に host
を指定するのではなく、Azure Databricks ワークスペースの Azure リソース ID と共に azure_workspace_resource_id
を指定します。 この場合、ターゲット ID には、Azure Databricks ワークスペースの Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。
CLI
Databricks CLI の場合は、次のいずれかを行います。
- この記事の「環境」セクションで指定されているように環境変数を設定します。
- この記事の「プロファイル」セクションで指定されているように
.databrickscfg
ファイルの値を設定します。
環境変数は、.databrickscfg
ファイル内の値よりも常に優先されます。
「Azure マネージド ID 認証」も参照してください。
接続
Note
Databricks Connect は、認証のために Databricks SDK for Python に依存しています。 Databricks SDK for Python では、まだ Azure マネージド ID 認証が実装されていません。
VS Code
Note
Visual Studio Code 用 Databricks 拡張機能では、Azure マネージド ID 認証はまだサポートされていません。
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_client_id = <retrieve-azure-client-id>
azure_use_msi = true
}
ワークスペースレベルの操作の場合 (既定の認証の場合):
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_client_id = <retrieve-azure-client-id>
azure_use_msi = true
}
ワークスペース レベルの操作の場合、ターゲット ID がまだワークスペースに追加されていない場合は、ワークスペース URL と共に host
を指定するのではなく、Azure Databricks ワークスペースの Azure リソース ID と共に azure_workspace_resource_id
を指定します。 この場合、ターゲット ID には、Azure Databricks ワークスペースの Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。
Databricks Terraform プロバイダーを使用した認証の詳細については、「認証」を参照してください。
Python
Note
Databricks SDK for Python では、まだ Azure マネージド ID 認証が実装されていません。
Java
Note
Databricks SDK for Java では、まだ Azure マネージド ID 認証が実装されていません。
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(),
AzureClientId: retrieveAzureClientId(),
AzureUseMSI: true,
}))
// ...
ワークスペースレベルの操作の場合 (既定の認証の場合):
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(),
AzureClientId: retrieveAzureClientId(),
AzureUseMSI: true,
}))
// ...
ワークスペース レベルの操作の場合、ターゲット ID がまだワークスペースに追加されていない場合は、ワークスペース URL と共に Host
を指定するのではなく、Azure Databricks ワークスペースの Azure リソース ID と共に AzureResourceID
を指定します。 この場合、ターゲット ID には、Azure Databricks ワークスペースの Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。
Go を使用し、Databricks クライアント統合認証を実装する Databricks ツールおよび SDK を使用した認証の詳細については、「Azure Databricks アカウントまたはワークスペースで Databricks SDK for Go を認証する」を参照してください。