Share via


Microsoft Entra ID 보안 주체 인증

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

참고 항목

Databricks는 대부분의 시나리오에서 Microsoft Entra ID 서비스 주체 인증 대신 OAuth M2M(컴퓨터-컴퓨터) 인증을 사용하는 것이 좋습니다. OAuth M2M 인증은 Azure Databricks에서만 인증할 때 더 강력한 Azure Databricks OAuth 액세스 토큰을 사용하기 때문입니다.

Azure Databricks 및 기타 Azure 리소스를 동시에 인증해야 하는 경우에만 Microsoft Entra ID 서비스 주체 인증을 사용해야 합니다. 이 경우 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에 따라 코드 내에 다음을 통합합니다.

환경

도구 또는 SDK를 사용하여 특정 Azure Databricks 인증 유형에 환경 변수를 사용하려면 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- 예를 들어 https://adb-1234567890123456.7.azuredatabricks.net작업 영역별 Azure Databricks URL 값으로 설정합니다.
  • 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 리소스에 대한 기여자 또는 소유자 권한 이상이 있어야 합니다.

프로필

파일에 다음 필드를 사용하여 Azure Databricks 구성 프로필을 만들거나 식별합니다 .databrickscfg . 프로필을 만드는 경우 자리 표시자를 적절한 값으로 바꿉다. 도구 또는 SDK와 함께 프로필을 사용하려면 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 서비스 주체 인증참조하세요.

연결

참고 항목

Microsoft Entra ID 서비스 주체 인증은 다음 Databricks 커넥트 버전에서 지원됩니다.

  • Python의 경우 Databricks 런타임 13.1 이상에 대한 Databricks 커넥트.
  • Scala의 경우 Databricks 런타임 13.3 LTS 이상에 대한 Databricks 커넥트.

Databricks 커넥트 경우 다음 중 하나를 수행할 수 있습니다.

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

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

파일에서 이러한 환경 변수 또는 값을 사용하여 Databricks 커넥트 클라이언트를 초기화하려면 다음 중 하나를 참조하세요.databrickscfg.

  • Python의 경우 Python에 대한 연결 속성 구성을 참조 하세요.
  • Scala의 경우 Scala에 대한 연결 속성 구성을 참조 하세요.

Vs code

Visual Studio Code용 Databricks 확장의 경우 다음을 수행합니다.

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

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

Terraform

계정 수준 작업의 경우 기본 인증:

provider "databricks" {
  alias = "accounts"
}

직접 구성의 retrieve 경우(자리 표시자를 사용자 고유의 구현으로 바꿔서 콘솔 또는 HashiCorp 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와 같은 다른 구성 저장소에서 값을 검색합니다. 자격 증명 모음 공급자참조하세요). 이 경우 호스트는 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 계정 또는 작업 영역으로 Go용 Databricks SDK 인증을 참조하세요.