OAuth를 사용하여 서비스 주체를 사용하여 Azure Databricks 리소스에 대한 무인 액세스 권한 부여
이 항목에서는 Azure Databricks CLI 명령을 자동화하거나 무인 프로세스에서 실행되는 코드에서 Azure Databricks REST API를 호출할 때 Azure Databricks 리소스에 대한 액세스 권한을 부여하는 단계와 세부 정보를 제공합니다.
Azure Databricks는 UI 외부에서 Azure Databricks 리소스와 상호 작용할 때 사용자 권한 부여 및 인증을 위한 기본 프로토콜로 OAuth를 사용합니다. 또한 Azure Databricks는 OAuth 인증 방법의 일부로 생성된 액세스 토큰의 새로 고침을 자동화하는 통합 클라이언트 인증 도구를 제공합니다. 이는 사용자 계정뿐만 아니라 서비스 주체에도 적용되지만, 해당 작업의 일부로 액세스해야 하는 Azure Databricks 리소스에 대한 적절한 권한과 권한으로 서비스 주체를 구성해야 합니다.
자세한 내용은 Azure Databricks 리소스대한 액세스 권한 부여를 참조하세요.
Azure Databricks 서비스 주체를 사용할 때 권한 부여 및 인증에 대한 옵션은 무엇인가요?
이 항목에서 권한 부여 위임을 통해 특정 Azure Databricks 리소스에 대한 액세스를 협상하는 데 사용되는 OAuth(프로토콜)를 나타냅니다. 인증 자격 증명이 표시, 전송 및 확인되는 메커니즘을 참조하며, 이 경우 액세스 토큰이 .
Azure Databricks는 OAuth 2.0기반 권한 부여를 사용하여 해당 리소스에 액세스할 수 있는 권한이 있는 서비스 주체를 대신하여 명령줄 또는 코드에서 Azure Databricks 계정 및 작업 영역 리소스에 액세스할 수 있도록 합니다. Azure Databricks 서비스 주체가 구성되고 CLI 명령을 실행하거나 REST API를 호출할 때 해당 자격 증명이 확인되면 해당 시점부터 서비스 주체를 대신하여 토큰 기반 인증을 수행하기 위해 참여 도구 또는 SDK에 OAuth 토큰이 제공됩니다. OAuth 액세스 토큰의 수명은 1시간이며, 그 다음에는 도구 또는 SDK가 1시간 동안 유효한 새 토큰을 가져오기 위해 자동 백그라운드 시도를 수행합니다.
Azure Databricks는 OAuth를 사용하여 서비스 주체에 대한 액세스 권한을 부여하는 두 가지 방법을 지원합니다.
- 대부분 자동으로 Databricks 통합 클라이언트 인증 지원을 사용합니다. 특정 Azure Databricks SDK(예: Databricks Terraform SDK) 및 도구를 사용하는 경우 이 간소화된 방법을 사용합니다. 지원되는 도구 및 SDK는 Databricks 통합 클라이언트 인증에 나열됩니다. 이 방법은 자동화 또는 기타 무인 프로세스 시나리오에 적합합니다.
- 수동으로 OAuth 코드 검증 도구/챌린지 쌍 및 인증 코드를 직접 생성하고 이를 사용하여 구성에서 제공할 초기 OAuth 토큰을 만듭니다. Databricks 통합 클라이언트 인증에서 지원하는 API를 사용하지 않는 경우 이 방법을 사용합니다. 이 경우 사용 중인 타사 도구 또는 API와 관련된 액세스 토큰의 새로 고침을 처리하는 고유한 메커니즘을 개발해야 할 수 있습니다. 자세한 내용은 다음을 참조하세요. OAuth 서비스 주체 인증대한 액세스 토큰을 수동으로 생성하고 사용합니다.
시작하기 전에 Azure Databricks 서비스 주체를 구성하고 자동화 코드 또는 명령이 요청할 때 사용해야 하는 리소스에 액세스할 수 있는 적절한 권한을 할당해야 합니다.
필수 구성 요소: 서비스 주체 만들기
계정 관리자 및 작업 영역 관리자는 서비스 주체를 만들 수 있습니다. 이 단계에서는 Azure Databricks 작업 영역에서 서비스 주체를 만드는 방법에 대해 설명합니다. Azure Databricks 계정 콘솔 자체에 대한 자세한 내용은 계정 서비스 주체 관리참조하세요.
Microsoft Entra ID 관리 서비스 주체를 만들고 Azure Databricks에 추가할 수도 있습니다. 자세한 내용은 Databricks 및 Microsoft Entra ID 서비스 주체를 참조하세요.
- 작업 영역 관리자로 Azure Databricks 작업 영역에 로그인합니다.
- Azure Databricks 작업 영역의 상단 표시줄에서 사용자 이름을 클릭하고 설정을 선택합니다.
- ID 및 액세스 탭을 클릭합니다.
- 서비스 주체 옆에 있는 관리를 클릭합니다.
- 서비스 주체 추가를 클릭합니다.
- 검색 상자에서 드롭다운 화살표를 클릭한 다음 새로 추가를 클릭합니다.
- 관리에서 관리되는 Databricks를 선택합니다.
- 서비스 주체의 이름을 입력합니다.
- 추가를 클릭합니다.
서비스 주체는 작업 영역과 Azure Databricks 계정 모두에 추가됩니다.
1단계: 서비스 주체에 사용 권한 할당
- 서비스 주체의 이름을 클릭하여 세부 정보 페이지를 엽니다.
- 구성 탭에서 서비스 주체가 이 작업 영역에 대해 보유할 각 자격 옆의 확인란을 선택한 다음 업데이트를 클릭합니다.
- 사용 권한 탭에서 이 서비스 주체를 관리하고 사용하려는 Azure Databricks 사용자, 서비스 주체, 그룹에 대한 액세스 권한을 부여합니다. 서비스 주체에서 역할 관리를 참조하세요.
2단계: 서비스 주체에 대한 OAuth 비밀 만들기
OAuth를 사용하여 Azure Databricks 리소스에 대한 액세스 권한을 부여하려면 먼저 인증을 위해 OAuth 액세스 토큰을 생성하는 데 사용할 수 있는 OAuth 비밀을 만들어야 합니다. 서비스 주체는 최대 5개의 OAuth 비밀을 가질 수 있습니다. 계정 관리자 및 작업 영역 관리자는 서비스 주체에 대한 OAuth 비밀을 만들 수 있습니다.
서비스 주체의 세부 정보 페이지에서 비밀 탭을 클릭합니다.
OAuth 비밀에서 비밀 생성을 클릭합니다.
표시된 비밀 및 클라이언트 ID를 복사한 다음 완료를 클릭합니다.
비밀은 만드는 동안 한 번만 공개됩니다. 클라이언트 ID는 서비스 주체의 애플리케이션 ID와 동일합니다.
계정 관리자는 계정 콘솔의 서비스 주체 세부 정보 페이지에서 OAuth 비밀을 생성할 수도 있습니다.
계정 관리자 권한으로 계정 콘솔에 로그인합니다.
Account Console user management icon사용자 관리를 클릭합니다.
서비스 주체 탭에서 서비스 주체를 선택합니다.
OAuth 비밀에서 비밀 생성을 클릭합니다.
표시된 비밀 및 클라이언트 ID를 복사한 다음 완료를 클릭합니다.
참고 항목
서비스 주체가 클러스터 또는 SQL 웨어하우스를 사용할 수 있도록 하려면 서비스 주체에 해당 클러스터 또는 SQL 웨어하우스에 대한 액세스 권한을 부여해야 합니다. 컴퓨팅 사용 권한 또는 SQL 웨어하우스 관리를 참조하세요.
3단계: OAuth 권한 부여 사용
통합 클라이언트 인증 도구에서 OAuth 권한 부여를 사용하려면 다음과 같은 연결된 환경 변수, .databrickscfg
필드, Terraform 필드 또는 Config
필드를 설정해야 합니다.
- 계정 작업 또는 대상
https://accounts.azuredatabricks.net
(예: 작업 영역에 작업에 대한 )에 대해https://adb-1234567890123456.7.azuredatabricks.net
로 지정된 Azure Databricks 호스트입니다. - Azure Databricks 계정 작업을 위한 Azure Databricks 계정 ID입니다.
- 서비스 주체 클라이언트 ID입니다.
- 서비스 주체 암호입니다.
OAuth 서비스 주체 인증을 수행하려면 참여 도구 또는 SDK에 따라 코드 내에 다음을 통합합니다.
Environment
도구 또는 SDK를 사용하여 특정 Azure Databricks 인증 유형에 환경 변수를 사용하려면 Azure Databricks 리소스에 대한 액세스 권한 부여 또는 도구 또는 SDK 설명서를 참조하세요. 클라이언트 통합 인증에 대한 환경 변수 및 필드와 클라이언트 통합 인증에 대한 기본 메서드도 참조하세요.
계정 수준 작업의 경우 다음 환경 변수를 설정합니다.
-
DATABRICKS_HOST
, Azure Databricks 계정 콘솔 URL인https://accounts.azuredatabricks.net
으로 설정합니다. DATABRICKS_ACCOUNT_ID
DATABRICKS_CLIENT_ID
DATABRICKS_CLIENT_SECRET
작업 영역 수준 작업의 경우 다음 환경 변수를 설정합니다.
-
DATABRICKS_HOST
를 Azure Databricks 작업 영역별 URL(예:https://adb-1234567890123456.7.azuredatabricks.net
)로 설정합니다. DATABRICKS_CLIENT_ID
DATABRICKS_CLIENT_SECRET
프로필
파일의 다음 필드를 사용하여 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>
client_id = <service-principal-client-id>
client_secret = <service-principal-secret>
작업 영역 수준 작업의 경우 .databrickscfg
파일에서 다음 값을 설정합니다. 이 경우 호스트는 Azure Databricks 작업 영역별 URL(예: https://adb-1234567890123456.7.azuredatabricks.net
)입니다.
[<some-unique-configuration-profile-name>]
host = <workspace-url>
client_id = <service-principal-client-id>
client_secret = <service-principal-secret>
CLI
Databricks CLI의 경우 다음 중 하나를 수행합니다
- 이 문서의 "환경" 섹션에 지정된 대로 환경 변수를 설정합니다.
- 이 문서의 "프로필" 섹션에 지정된 대로
.databrickscfg
파일의 값을 설정합니다.
환경 변수는 항상 .databrickscfg
파일의 값보다 우선 순위를 갖습니다.
OAuth M2M(컴퓨터 대 컴퓨터) 인증도 참조하세요.
연결
참고 항목
OAuth 서비스 주체 인증은 다음 Databricks Connect 버전에서 지원됩니다.
- Python의 경우 Databricks Runtime 14.0 이상 버전용 Databricks Connect.
- Scala의 경우 Databricks Runtime 13.3 LTS 이상 버전용 Databricks Connect. Databricks Runtime 13.3 LTS 이상 버전용 Databricks Connect에 포함된 Java용 Databricks SDK는 Java 0.17.0 이상 버전용 Databricks SDK로 업그레이드해야 합니다.
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
하세요.
VS Code
Visual Studio Code용 Databricks 익스텐션의 경우 다음을 수행하세요.
- 이 문서의 "프로필" 섹션에 지정된 대로 Azure Databricks
.databrickscfg
에 대한 파일에서 값을 설정합니다. - Visual Studio Code용 Databricks 익스텐션의 구성 창에서 Databricks 구성을 클릭합니다.
-
명령 팔레트의 Databricks 호스트에 작업 영역별 URL(예:
https://adb-1234567890123456.7.azuredatabricks.net
)을 입력한 다음Enter
를 누릅니다. - 명령 팔레트에서 URL 목록에 있는 대상 프로필의 이름을 선택합니다.
자세한 내용은 Visual Studio Code Databricks 확장에 대한 권한 부여 설정참조하세요.
Terraform
계정 수준 작업의 경우 기본 인증에 다음을 사용합니다.
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>
client_id = <retrieve-client-id>
client_secret = <retrieve-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>
client_id = <retrieve-client-id>
client_secret = <retrieve-client-secret>
}
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(),
client_id = retrieve_client_id(),
client_secret = retrieve_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(),
client_id = retrieve_client_id(),
client_secret = retrieve_client_secret()
)
# ...
Python을 사용하고 Databricks 클라이언트 통합 인증을 구현하는 Databricks 도구 및 SDK로 인증하는 방법에 대한 자세한 내용은 다음을 참조하세요.
참고 항목
Visual Studio Code용 Databricks 확장은 Python을 사용하지만 아직 OAuth 서비스 주체 인증을 구현하지 않았습니다.
Java
작업 영역 수준 작업의 경우 기본 인증사용하여.
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())
.setClientId(retrieveClientId())
.setClientSecret(retrieveClientSecret());
WorkspaceClient w = new WorkspaceClient(cfg);
// ...
Java를 사용하고 Databricks 클라이언트 통합 인증을 구현하는 Databricks 도구 및 SDK로 인증하는 방법에 대한 자세한 내용은 다음을 참조하세요.
- Scala용 Databricks Connect 클라이언트 설정(Scala용 Databricks Connect 클라이언트는 포함된 Java용 Databricks SDK를 인증에 사용)
- Azure Databricks 계정 또는 작업 영역을 사용하여 Java용 Databricks SDK 인증
Go
계정 수준 작업의 경우 기본 인증사용하여.
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...
직접 구성의 경우 (retrieve
자리 표시자를 사용자 고유의 구현으로 바꿔서 콘솔 또는 다른 구성 저장소(예: Azure KeyVault)에서 값을 검색합니다.) 이 경우 Azure Databricks 계정 콘솔 URL은 https://accounts.azuredatabricks.net
입니다.
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
ClientId: retrieveClientId(),
ClientSecret: retrieveClientSecret(),
}))
// ...
작업 영역 수준 작업의 경우 기본 인증사용하여.
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
직접 구성의 경우 (retrieve
자리 표시자를 사용자 고유의 구현으로 바꿔서 콘솔 또는 다른 구성 저장소(예: Azure KeyVault)에서 값을 검색합니다.) 이 경우 호스트는 Azure Databricks 작업 영역별 URL(예: https://adb-1234567890123456.7.azuredatabricks.net
)입니다.
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveWorkspaceUrl(),
ClientId: retrieveClientId(),
ClientSecret: retrieveClientSecret(),
}))
// ...
Go를 사용하고 Databricks 클라이언트 통합 인증을 구현하는 Databricks 도구 및 SDK를 사용하여 인증하는 방법에 대한 자세한 내용은 Azure Databricks 계정 또는 작업 영역으로 Go용 Databricks SDK 인증을 참조하세요.
OAuth 서비스 주체 인증에 대한 액세스 토큰을 수동으로 생성 및 사용
Databricks 클라이언트 통합 인증 표준을 구현하는 Azure Databricks 도구 및 SDK는 OAuth 서비스 주체 인증에 필요한 경우 사용자를 대신하여 Azure Databricks OAuth 액세스 토큰을 자동으로 생성, 새로 고침 및 사용합니다.
Databricks는 클라이언트 통합 인증을 사용하는 것이 좋습니다. 그러나 Azure Databricks OAuth 액세스 토큰을 수동으로 생성, 새로 고치거나 사용해야 하는 경우 이 섹션의 지침을 따릅니다.
서비스 주체의 클라이언트 ID 및 OAuth 비밀을 사용하여 OAuth 액세스 토큰을 요청하여 계정 수준 REST API 및 작업 영역 수준 REST API 모두에 인증합니다. 액세스 토큰은 1시간 후에 만료됩니다. 만료 후 새 OAuth 액세스 토큰을 요청해야 합니다. OAuth 액세스 토큰의 범위는 토큰을 만드는 수준에 따라 달라집니다. 다음과 같이 계정 수준 또는 작업 영역 수준에서 토큰을 만들 수 있습니다.
- 서비스 주체가 액세스할 수 있는 계정 및 작업 영역 내에서 계정 수준 및 작업 영역 수준 REST API를 호출하려면 계정 수준에서 액세스 토큰을 수동으로 생성합니다.
- 서비스 주체가 액세스할 수 있는 작업 영역 중 하나 내에서 REST API를 호출하려면 해당 작업 영역에 대해서만 작업 영역 수준에서 액세스 토큰을 수동으로 생성합니다.
계정 수준 액세스 토큰 수동 생성
계정 수준에서 만든 OAuth 액세스 토큰은 계정의 Databricks REST API 및 서비스 주체가 액세스할 수 있는 모든 작업 영역에서 사용할 수 있습니다.
계정 관리자 권한으로 계정 콘솔에 로그인합니다.
오른쪽 위에서 사용자 이름 옆의 아래쪽 화살표를 클릭합니다.
계정 ID를 복사합니다.
다음 URL에서
<my-account-id>
을 복사한 계정 ID로 바꿔 토큰 엔드포인트 URL을 생성합니다.https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
토큰 엔드포인트 URL, 서비스 주체의 클라이언트 ID(애플리케이션 ID라고도 함) 및 사용자가 만든 서비스 주체의 OAuth 비밀을 사용하여 OAuth 액세스 토큰을 요청하는 등의
curl
클라이언트를 사용합니다. 범위는all-apis
서비스 주체에 액세스 권한이 부여된 모든 Databricks REST API에 액세스하는 데 사용할 수 있는 OAuth 액세스 토큰을 요청합니다.-
<token-endpoint-URL>
을 이전 토큰 엔드포인트 URL로 바꿉니다. -
<client-id>
을 애플리케이션 ID라고도 하는 서비스 주체의 클라이언트 ID로 바꿉 니다. -
<client-secret>
을 만든 서비스 주체의 OAuth 비밀로 바꿉니다.
export CLIENT_ID=<client-id> export CLIENT_SECRET=<client-secret> curl --request POST \ --url <token-endpoint-URL> \ --user "$CLIENT_ID:$CLIENT_SECRET" \ --data 'grant_type=client_credentials&scope=all-apis'
다음과 유사한 응답이 생성됩니다.
{ "access_token": "eyJraWQiOiJkYTA4ZTVjZ…", "token_type": "Bearer", "expires_in": 3600 }
응답에서
access_token
을 복사합니다.-
작업 영역 수준 액세스 토큰 수동 생성
서비스 주체가 계정 관리자이거나 다른 작업 영역의 구성원인 경우에도 작업 영역 수준에서 만든 OAuth 액세스 토큰은 해당 작업 영역의 REST API에만 액세스할 수 있습니다.
https://<databricks-instance>
를 Azure Databricks 배포의 작업 영역 URL로 바꿔 토큰 엔드포인트 URL을 생성합니다.https://<databricks-instance>/oidc/v1/token
토큰 엔드포인트 URL, 서비스 주체의 클라이언트 ID(애플리케이션 ID라고도 함) 및 사용자가 만든 서비스 주체의 OAuth 비밀을 사용하여 OAuth 액세스 토큰을 요청하는 등의
curl
클라이언트를 사용합니다. 범위는all-apis
서비스 주체가 토큰을 요청하는 작업 영역 내에서 액세스 권한을 부여받은 모든 Databricks REST API에 액세스하는 데 사용할 수 있는 OAuth 액세스 토큰을 요청합니다.-
<token-endpoint-URL>
을 이전 토큰 엔드포인트 URL로 바꿉니다. -
<client-id>
을 애플리케이션 ID라고도 하는 서비스 주체의 클라이언트 ID로 바꿉 니다. -
<client-secret>
을 만든 서비스 주체의 OAuth 비밀로 바꿉니다.
export CLIENT_ID=<client-id> export CLIENT_SECRET=<client-secret> curl --request POST \ --url <token-endpoint-URL> \ --user "$CLIENT_ID:$CLIENT_SECRET" \ --data 'grant_type=client_credentials&scope=all-apis'
다음과 유사한 응답이 생성됩니다.
{ "access_token": "eyJraWQiOiJkYTA4ZTVjZ…", "token_type": "Bearer", "expires_in": 3600 }
응답에서
access_token
을 복사합니다.-
Databricks REST API 호출
OAuth 액세스 토큰을 사용하여 Azure Databricks 계정 수준 REST API 및 작업 영역 수준 REST API에 인증할 수 있습니다. 계정 수준 REST API를 호출하려면 서비스 주체에 계정 관리자 권한이 있어야 합니다.
Bearer
인증을 사용하여 권한 부여 헤더에 액세스 토큰을 포함합니다. 이 방법은 curl
에서 또는 사용자가 빌드한 클라이언트에서 사용할 수 있습니다.
계정 수준 REST API 요청 예제
이 예제에서는 Bearer
인증을 사용하여 계정과 연결된 모든 작업 영역 목록을 가져옵니다.
- 이전 단계에서 복사한 서비스 주체의 OAuth 액세스 토큰으로 바꿉
<oauth-access-token>
다. -
<account-id>
를 계정 ID로 바꿉니다.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
'https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces'
작업 영역 수준 REST API 요청 예제
이 예제에서는 Bearer
인증을 사용하여 지정된 작업 영역에 모든 사용 가능한 클러스터를 나열합니다.
- 이전 단계에서 복사한 서비스 주체의 OAuth 액세스 토큰으로 바꿉
<oauth-access-token>
다. -
<workspace-URL>
을dbc-a1b2345c-d6e7.cloud.databricks.com
과 비슷한 형식의 기본 작업 영역 URL로 바꿉니다.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
'https://<workspace-URL>/api/2.0/clusters/list'
추가 리소스
- 서비스 주체
- Databricks ID 모델 개요
- 인증 및 액세스 제어에 대한 추가 정보