Azure 受控識別 驗證會使用 Azure 資源的受控識別(先前稱為受控服務識別(MSI)向 Azure Databricks 進行驗證。 使用支援受控識別的 Azure 資源,例如 Azure VM 時,以程式設計方式呼叫 Azure Databricks 帳戶和工作區作業時,會使用此受控識別。
- 如需關於受控識別的詳細資訊,請參閱什麼是Azure 資源受控識別?。
- 若要瞭解如何建立受控識別,併為其授與存取 Azure Databricks 帳戶和工作區的許可權,請參閱 設定及使用 Azure Databricks 自動化的 Azure 受控識別驗證。
備註
Azure 資源的受控識別與 Microsoft Entra ID 服務主體不同,Azure Databricks 也支持進行驗證。 若要瞭解如何使用 Microsoft Entra ID 服務主體進行 Azure Databricks 的驗證,取代使用 Azure 資源的受管理的身分識別,請參閱:
Azure 受控識別驗證只有在正確設定的資源之間才支援受控識別,例如 Azure 虛擬機(Azure VM)和 Azure Databricks 帳戶和工作區。
若要使用 Azure Databricks 設定 Azure 受控識別驗證,您必須在適當支援的 Azure VM 上設定下列相關聯的環境變數、.databrickscfg
字段、Terraform 字段或 Config
字段:
- Azure Databricks 主機。
- 針對帳戶作業,請指定
https://accounts.azuredatabricks.net
。 - 針對工作區作業,請指定個別工作區網址,例如
https://adb-1234567890123456.7.azuredatabricks.net
。
- 針對帳戶作業,請指定
- 針對帳戶操作,則為 Azure Databricks 帳戶識別碼。
- 受管身份的租戶識別碼。
- 受管理的身份的用戶端識別碼。
- Azure 資源識別碼。
- 將 Azure 使用受控識別設定為 true。
若要使用 Azure Databricks 執行 Azure 受控識別驗證,請根據您的參與工具或 SDK,在程式代碼中整合下列專案:
環境
若要搭配工具或 SDK 使用特定 Azure Databricks 驗證類型的環境變數,請參閱 授權存取 Azure Databricks 資源 或工具或 SDK 的檔。 請參閱環境變數與統一客戶認證的欄位以及客戶統一認證的預設方法。
針對 帳戶層級作業,請設定下列環境變數:
-
DATABRICKS_HOST
,設定為 Azure Databricks 帳戶主控台網址的值 (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
。
針對工作區層級作業,如果目標身分識別尚未新增至工作區,請指定 DATABRICKS_AZURE_RESOURCE_ID
並附上 Azure Databricks 工作區的 Azure 資源識別碼,而不是指定 DATABRICKS_HOST
並附上工作區 URL。 在此情況下,目標身分識別必須至少具備 Contributor 或 Owner 許可權,才能存取 Azure Databricks 工作區的 Azure 資源。
個人檔案
在您的 檔案中,建立或識別含有下列欄位的 Azure Databricks .databrickscfg
。 如果您建立設定檔,請將占位符替換成適當的值。 若要搭配工具或 SDK 使用設定檔,請參閱 授權存取 Azure Databricks 資源 或工具或 SDK 的文件。 請參閱環境變數與統一客戶認證的欄位以及客戶統一認證的預設方法。
針對 帳戶層級作業,請在 .databrickscfg
檔案中設定下列值。 在此情況下,Azure Databricks 帳戶主控台網址為 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 個別工作區網址,例如 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
針對工作區層級作業,如果目標身分識別尚未新增至工作區,請指定 azure_workspace_resource_id
並附上 Azure Databricks 工作區的 Azure 資源識別碼,而不是指定 host
並附上工作區 URL。 在此情況下,目標身分識別必須至少具備 Contributor 或 Owner 許可權,才能存取 Azure Databricks 工作區的 Azure 資源。
命令行介面(CLI)
針對 Databricks CLI,請執行下列其中一項:
- 如本文的「環境」一節中所指定,設定環境變數。
- 如本文的「配置檔」一節所指定,設定檔案
.databrickscfg
中的值。
環境變數一律優先於 .databrickscfg
檔案中的值。
同時參見 Azure managed identities authentication。
連線
備註
Databricks Connect 依賴適用於 Python 的 Databricks SDK 進行驗證。 適用於 Python 的 Databricks SDK 尚未實作 Azure 受控識別驗證。
VS 程式碼
備註
適用於 Visual Studio Code 的 Databricks 擴充功能尚不支援 Azure 受控識別驗證。
Terraform(星體改造技術)
provider "databricks" {
alias = "accounts"
}
針對直接設定(將 retrieve
佔位符號替換為您自己的實作,以從主控台或其他一些設定存放區中取得值,例如 HashiCorp Vault。另請參閱 Vault Provider)。 在此情況下,Azure Databricks 帳戶主控台網址為 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 個別工作區網址,例如 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
}
針對工作區層級作業,如果目標身分識別尚未新增至工作區,請指定 azure_workspace_resource_id
並附上 Azure Databricks 工作區的 Azure 資源識別碼,而不是指定 host
並附上工作區 URL。 在此情況下,目標身分識別必須至少具備 Contributor 或 Owner 許可權,才能存取 Azure Databricks 工作區的 Azure 資源。
如需有關使用 Databricks Terraform 提供者進行驗證的詳細資訊,請參閱驗證。
Python(程式語言)
備註
適用於 Python 的 Databricks SDK 尚未實作 Azure 受控識別驗證。
爪哇島
備註
Databricks SDK for Java 尚未實作 Azure 受控識別驗證。
走吧
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
直接配置時(將 retrieve
佔位符替換成您自己的實作,以從控制台或其他一些組態存放區中擷取值,例如 Azure KeyVault)。 在此情況下,Azure Databricks 帳戶主控台網址為 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 個別工作區網址,例如 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,
}))
// ...
針對工作區層級作業,如果目標身分識別尚未新增至工作區,請指定 AzureResourceID
並附上 Azure Databricks 工作區的 Azure 資源識別碼,而不是指定 Host
並附上工作區 URL。 在此情況下,目標身分識別必須至少具備 Contributor 或 Owner 許可權,才能存取 Azure Databricks 工作區的 Azure 資源。
如需使用 Go 和實作 Databricks 用戶端統一驗證的 Databricks 工具和 SDK 進行驗證的詳細資訊,請參閱使用 Azure Databricks 帳戶或工作區驗證適用於 Go 的 Databricks SDK。