다음을 통해 공유


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를 사용하여 서비스 주체를 사용하여 Azure Databricks 리소스에 대한 무인 액세스 권한 부여를 참조하세요.

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

특히 Azure DevOps를 사용하여 Databricks에 대한 Microsoft Entra 인증에 대한 자세한 내용은 Azure 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 값으로 설정합니다(예: ).
    • ARM_TENANT_ID
    • ARM_CLIENT_ID
    • ARM_CLIENT_SECRET

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

파일에 다음 필드를 포함하여 Azure Databricks 구성 프로필을 생성하거나 식별하세요 .databrickscfg. 프로필을 만드는 경우 자리 표시자를 적절한 값으로 바꿉다. 도구 또는 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 대신 azure_workspace_resource_id Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 host을(를) 지정합니다. 이 경우 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 환경 변수를 예를 들어 과 같이 작업 공간의 https://adb-1234567890123456.7.azuredatabricks.net로 설정하십시오.

.databrickscfg 파일의 값은 항상 환경 변수보다 우선합니다.

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

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 대신 azure_workspace_resource_id Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 host을(를) 지정합니다. 이 경우 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 대신 azure_workspace_resource_id Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 host을(를) 지정합니다. 이 경우 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 대신 setAzureWorkspaceResourceId Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 setHost을(를) 지정합니다. 이 경우 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 대신 AzureWorkspaceResourceId Azure Databricks 작업 영역에 대한 Azure 리소스 ID와 함께 Host을(를) 지정합니다. 이 경우 MS Entra 서비스 주체는 Azure Databricks 작업 영역의 Azure 리소스에 대한 기여자 또는 소유자 권한 이상이 있어야 합니다.

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