다음을 통해 공유


MS Entra 서비스 주체 인증

MS Entra 서비스 주체 인증은 MS Entra 서비스 주체의 자격 증명을 사용하여 인증합니다. Azure Databricks용 서비스 주체를 만들고 관리하려면 다음을 참조하세요.

참고 항목

Databricks는 대부분의 시나리오에서 MS Entra 서비스 주체 인증 대신 OAuth M2M(컴퓨터 대 컴퓨터) 인증을 사용하도록 권장합니다. OAuth M2M 인증은 Azure Databricks에서만 인증할 때 더 강력한 Azure Databricks OAuth 액세스 토큰을 사용하기 때문입니다.

Azure Databricks 및 기타 Azure 리소스를 동시에 인증해야 하는 경우 MS Entra 서비스 주체 인증만 사용해야 합니다.

MS Entra 서비스 주체 인증 대신 OAuth M2M 인증을 사용하려면 이 문서를 건너뛰고 OAuth(OAuth M2M)를 사용하여 서비스 주체로 Azure Databricks에 대한 액세스 인증을 참조하세요.

MS Entra 서비스 주체는 Azure Databricks가 인증을 지원하는 Azure 리소스에 대한 관리 ID와 다릅니다. Azure Databricks 인증을 위해 MS Entra 서비스 주체 대신 Azure 리소스에 대한 관리 ID를 사용하는 방법을 알아보려면 Azure Databricks 자동화를 위한 Azure 관리 ID 인증 설정 및 사용을 참조하세요.

특히 Azure DevOps를 사용하여 Databricks에 Microsoft Entra 인증에 대한 자세한 내용은 Databricks에서 Azure DevOps로 인증을 참조하세요.

Azure Databricks에서 MS Entra 서비스 주체 인증을 구성하려면 다음과 같은 연결된 환경 변수, .databrickscfg 필드, Terraform 필드 또는 Config 필드를 설정해야 합니다.

  • Azure Databricks 호스트입니다.

    • 계정 작업의 경우 https://accounts.azuredatabricks.net을 지정합니다.

    • 작업 영역 작업의 경우 작업 영역별 URL(예: https://adb-1234567890123456.7.azuredatabricks.net)을 지정합니다.

      MS Entra 서비스 주체가 작업 영역에 아직 추가되지 않은 경우 대신 Azure 리소스 ID를 지정합니다. 이 경우 MS Entra 서비스 주체는 Azure 리소스에 대한 기여자 또는 소유자 권한 이상이 있어야 합니다.

  • 계정 작업의 경우 Azure Databricks 계정 ID입니다.

  • Azure 리소스 ID.

  • MS Entra 서비스 주체의 테넌트 ID입니다.

  • MS Entra 서비스 주체의 클라이언트 ID입니다.

  • MS Entra 서비스 주체의 클라이언트 암호입니다.

Azure Databricks에서 MS Entra 서비스 주체 인증을 수행하려면 참여 도구 또는 SDK를 기반으로 코드 내에 다음을 통합합니다.

도구 또는 SDK를 사용하여 특정 Azure Databricks 인증 유형에 환경 변수를 사용하려면 Azure Databricks 리소스에 대한 액세스 인증이나 도구 또는 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

    작업 영역 수준 작업에서 MS Entra 서비스 주체가 작업 영역에 아직 추가되지 않은 경우 작업 영역 URL과 함께 HOST 대신 Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 DATABRICKS_AZURE_RESOURCE_ID를 지정합니다. 이 경우 MS Entra 서비스 주체는 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_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>

작업 영역 수준 작업에서 MS Entra 서비스 주체가 작업 영역에 아직 추가되지 않은 경우 작업 영역 URL과 함께 host 대신 Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 azure_workspace_resource_id를 지정합니다. 이 경우 MS Entra 서비스 주체는 Azure Databricks 작업 영역의 Azure 리소스에 대한 기여자 또는 소유자 권한 이상이 있어야 합니다.

Databricks CLI의 경우 다음 중 하나를 수행합니다

  • 이 문서의 "환경" 섹션에 지정된 대로 환경 변수를 설정합니다.
  • 이 문서의 "프로필" 섹션에 지정된 대로 .databrickscfg 파일의 값을 설정합니다.

환경 변수는 항상 .databrickscfg 파일의 값보다 우선 순위를 갖습니다.

Microsoft Entra ID 서비스 주체 인증을 참조하세요.

참고 항목

MS Entra 서비스 주체 인증은 다음 Databricks Connect 버전에서 지원됩니다.

  • Python의 경우 Databricks Runtime 13.1 이상 버전용 Databricks Connect.
  • Scala의 경우 Databricks Runtime 13.3 LTS 이상 버전용 Databricks Connect.

Databricks Connect의 경우 다음 중 하나를 수행할 수 있습니다.

  • 이 문서의 "프로필" 섹션에 지정된 대로 Azure Databricks 작업 영역 수준 작업에 대한 .databrickscfg 파일에서 값을 설정합니다. 또한 프로필의 cluster_id 환경 변수를 작업 영역별 URL(예: https://adb-1234567890123456.7.azuredatabricks.net)로 설정합니다.
  • 이 문서의 "환경" 섹션에 지정된 대로 Azure Databricks 작업 영역 수준 작업에 대한 환경 변수를 설정합니다. 또한 DATABRICKS_CLUSTER_ID 환경 변수를 작업 영역별 URL(예: https://adb-1234567890123456.7.azuredatabricks.net)로 설정합니다.

.databrickscfg 파일의 값은 항상 환경 변수보다 우선 순위를 갖습니다.

파일에서 이러한 환경 변수 또는 값을 사용하여 Databricks Connect 클라이언트를 초기화하려면 Databricks Connect에 대한 컴퓨팅 구성을 참조하세요.databrickscfg.

Visual Studio Code용 Databricks 익스텐션의 경우 다음을 수행하세요.

  1. 이 문서의 "프로필" 섹션에 지정된 대로 Azure Databricks 작업 영역 수준 작업에 대한 .databrickscfg 파일에서 값을 설정합니다.
  2. Visual Studio Code용 Databricks 익스텐션의 구성 창에서 Databricks 구성을 클릭합니다.
  3. 명령 팔레트Databricks 호스트작업 영역별 URL(예: https://adb-1234567890123456.7.azuredatabricks.net)을 입력한 다음 Enter를 누릅니다.
  4. 명령 팔레트에서 URL 목록에 있는 대상 프로필의 이름을 선택합니다.

자세한 내용은 Visual Studio Code용 Databricks 확장에 대한 인증 설정을 참조하세요.

계정 수준 작업의 경우 기본 인증에 다음을 사용합니다.

provider "databricks" {
  alias = "accounts"
}

직접 구성의 경우(retrieve 자리 표시자를 사용자 고유의 구현으로 바꿔서 콘솔 또는 HashiCorp Vault와 같은 다른 구성 저장소에서 값을 검색합니다. Vault 공급자도 참조하세요). 이 경우 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 공급자도 참조하세요). 이 경우 호스트는 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>
}

작업 영역 수준 작업에서 MS Entra 서비스 주체가 작업 영역에 아직 추가되지 않은 경우 작업 영역 URL과 함께 host 대신 Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 azure_workspace_resource_id를 지정합니다. 이 경우 MS Entra 서비스 주체는 Azure Databricks 작업 영역의 Azure 리소스에 대한 기여자 또는 소유자 권한 이상이 있어야 합니다.

Databricks Terraform 공급자를 사용하여 인증하는 방법에 대한 자세한 내용은 인증을 참조하세요.

계정 수준 작업의 경우 기본 인증에 다음을 사용합니다.

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()
)
# ...

작업 영역 수준 작업에서 MS Entra 서비스 주체가 작업 영역에 아직 추가되지 않은 경우 작업 영역 URL과 함께 host 대신 Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 azure_workspace_resource_id를 지정합니다. 이 경우 MS Entra 서비스 주체는 Azure Databricks 작업 영역의 Azure 리소스에 대한 기여자 또는 소유자 권한 이상이 있어야 합니다.

Python을 사용하고 Databricks 클라이언트 통합 인증을 구현하는 Databricks 도구 및 SDK로 인증하는 방법에 대한 자세한 내용은 다음을 참조하세요.

계정 수준 작업의 경우 기본 인증에 다음을 사용합니다.

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);
// ...

작업 영역 수준 작업에서 MS Entra 서비스 주체가 작업 영역에 아직 추가되지 않은 경우 작업 영역 URL과 함께 setHost 대신 Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 setAzureWorkspaceResourceId를 지정합니다. 이 경우 MS Entra 서비스 주체는 Azure Databricks 작업 영역의 Azure 리소스에 대한 기여자 또는 소유자 권한 이상이 있어야 합니다.

Java를 사용하고 Databricks 클라이언트 통합 인증을 구현하는 Databricks 도구 및 SDK로 인증하는 방법에 대한 자세한 내용은 다음을 참조하세요.

계정 수준 작업의 경우 기본 인증에 다음을 사용합니다.

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(),
}))
// ...

작업 영역 수준 작업에서 MS Entra 서비스 주체가 작업 영역에 아직 추가되지 않은 경우 작업 영역 URL과 함께 Host 대신 Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 AzureWorkspaceResourceId를 지정합니다. 이 경우 MS Entra 서비스 주체는 Azure Databricks 작업 영역의 Azure 리소스에 대한 기여자 또는 소유자 권한 이상이 있어야 합니다.

Go를 사용하고 Databricks 클라이언트 통합 인증을 구현하는 Databricks 도구 및 SDK를 사용하여 인증하는 방법에 대한 자세한 내용은 Azure Databricks 계정 또는 작업 영역으로 Go용 Databricks SDK 인증을 참조하세요.