Azure Databricks 리소스에 대한 액세스 권한 부여
이 항목에서는 사용자 계정 또는 서비스 주체와 같은 Azure Databricks 계정 자격 증명을 사용하여 보안 Azure Databricks CLI 또는 REST API 호출을 수행하는 기본 방법을 설명합니다.
Azure Databricks CLI 및 API에 대한 권한 부여
Databricks CLI 또는 REST API를 사용하여 Azure Databricks 리소스에 액세스하려면 클라이언트가 Azure Databricks 계정을 사용하여 권한을 부여해야 합니다. 이 계정에는 Azure Databricks 관리자 또는 관리자 권한이 있는 사용자 계정으로 구성할 수 있는 리소스에 액세스할 수 있는 권한이 있어야 합니다.
Azure Databricks 리소스에 액세스하려는 방법에 따라 다음 두 가지 유형의 계정을 사용할 수 있습니다.
- 사용자 계정: 이를 사용하여 Azure Databricks CLI 명령 또는 REST API 호출을 대화형으로 입력합니다.
- 서비스 주체: 이를 사용하여 사용자 상호 작용 없이 Azure Databricks CLI 명령 또는 REST API 호출을 자동화합니다.
Azure Databricks 계정 유형을 결정했으면 계정의 자격 증명을 나타내는 액세스 토큰 획득해야 합니다. 스크립트 또는 코드 또는 대화형 세션에서 계정의 리소스에 액세스할 때 이 액세스 토큰을 제공합니다.
- Azure Databricks를 사용하는 경우 MS Entra 서비스 주체를 사용하여 Azure Databricks 계정 또는 작업 영역에 대한 액세스 권한을 부여할 수도 있습니다. 그러나 Databricks는 MS Entra 서비스 주체 권한 부여 대신 Databricks가 제공하는 OAuth 권한 부여를 사용하여 Databricks 서비스 주체를 활용하는 것을 권장합니다. Databricks의 권한 부여는 Azure Databricks로만 권한을 부여할 때 더 강력한 OAuth 액세스 토큰을 사용하기 때문입니다.
MS Entra 서비스 주체를 사용하여 Databricks 리소스에 액세스하는 방법에 대한 자세한 내용은 MS Entra 서비스 주체 인증을 참조하세요.
액세스 토큰 획득
계정의 자격 증명은 CLI 명령 또는 API 호출에 직접 또는 간접적으로 제공하는 보안 액세스 토큰으로 표시됩니다.
계정 또는 작업 영역에 대한 권한 있는 액세스가 필요한 Databricks CLI 명령 또는 API 요청을 안전하게 실행하려면 유효한 Azure Databricks 계정 자격 증명을 기반으로 액세스 토큰을 제공해야 합니다.
다음 표에서는 Azure Databricks 계정에 사용할 수 있는 권한 부여 방법을 보여 줍니다.
Azure Databricks 권한 부여 방법
Azure Databricks 도구 및 SDK는 하나 이상의 지원되는 Azure Databricks 권한 부여 방법에서 작동하므로 사용 사례에 가장 적합한 권한 부여 방법을 선택할 수 있습니다. 자세한 내용은 로컬 개발 도구도구 또는 SDK 설명서를 참조하세요.
Azure Databricks 사용자는 Databricks 계정으로 직접 관리되지 않는 Azure 특정 리소스에 액세스해야 할 수 있습니다. 이러한 리소스에 액세스하는 방법도 이 표에 포함되어 있습니다. Azure 리소스 액세스의 경우 Azure Databricks 계정 자격 증명이 아닌 AZURE MSI(관리 서비스 ID) 또는 MS Entra ID(시나리오에 따라 다름)를 사용합니다.
메서드 | 설명 | 사용 사례 |
---|---|---|
서비스 주체에 대한 Databricks OAuth | 서비스 주체에 대한 수명이 짧은 OAuth 토큰입니다. | 비참여형 권한 부여 시나리오, 예를 들어, 완전 자동화 및 CI/CD 워크플로우. |
사용자들을 위한 Databricks OAuth | 사용자에 대한 수명이 짧은 OAuth 토큰입니다. | 웹 브라우저 또는 다른 대화형 방법을 사용하여 Databricks로 권한을 부여하는 데 참여하는 권한 부여 시나리오입니다. |
Databricks PAT(개인용 액세스 토큰) | 사용자 또는 서비스 주체에 대한 수명이 짧은 또는 수명이 긴 토큰입니다. | 대상 도구가 OAuth를 지원하지 않는 경우에만 사용합니다. |
Azure 관리 서비스 ID 권한 부여 | Azure 관리 ID에 대한 Microsoft Entra ID 토큰입니다. | Azure 가상 머신과 같은 관리 ID를 지원하는 Azure 리소스에서만 사용합니다. |
Microsoft Entra ID 서비스 주체 권한 부여 | Microsoft Entra ID 서비스 주체에 대한 Microsoft Entra ID 토큰입니다. | Microsoft Entra ID 토큰을 지원하고 관리 ID를 지원하지 않는 Azure DevOps와 같은 Azure 리소스에서만 사용합니다. |
Azure CLI 권한 부여 | 사용자 또는 Microsoft Entra ID 서비스 주체에 대한 Microsoft Entra ID 토큰입니다. | Azure CLI를 사용하여 Azure 리소스 및 Azure Databricks에 대한 액세스 권한을 부여하는 데 사용합니다. |
Microsoft Entra ID 사용자 권한 부여 | 사용자에 대한 Microsoft Entra ID 토큰입니다. | Microsoft Entra ID 토큰만 지원하는 Azure 리소스에서만 사용합니다. Databricks에서는 Azure Databricks 사용자에 대한 Microsoft Entra ID 토큰을 수동으로 만들지 않는 것이 좋습니다. |
어떤 권한 부여 옵션을 선택해야 하나요?
Azure Databricks는 액세스 토큰을 사용하여 권한 부여 또는 인증을 위한 2가지 옵션을 제공합니다.
- OAuth 2.0 기반 액세스 토큰.
- 개인용 액세스 토큰(PAT).
메모
Azure Databricks는 OAuth 토큰이 기본적으로 자동으로 새로 고쳐지고 액세스 토큰을 직접 관리할 필요가 없으므로 권한 부여를 위해 PAT를 통해 OAuth를 사용하는 것이 좋습니다. 토큰 하이재킹 및 원치 않는 액세스에 대한 보안이 향상됩니다.
OAuth는 사용자를 위해 액세스 토큰을 만들고 관리하므로 토큰 문자열을 직접 제공하는 대신 Azure Databricks 작업 영역에서 생성하는 OAuth 토큰 엔드포인트 URL, 클라이언트 ID 및 비밀을 제공합니다. Azure Databricks 통합 클라이언트 인증에서 지원하지 않거나 OAuth를 지원하지 않는 타사 도구 또는 서비스를 통합하는 경우에만 PAT를 선택합니다.
OAuth를 사용하여 Azure Databricks 리소스에 대한 액세스 권한을 부여하려면 어떻게 해야 하나요?
Azure Databricks는 특정 자격 증명 값으로 설정할 수 있는 기본 환경 변수 집합을 사용하여 권한 부여를 지원하는 통합 클라이언트 인증 제공합니다. 이렇게 하면 이러한 환경 변수가 Azure Databricks CLI 명령을 실행하거나 Azure Databricks API를 호출하는 환경과 관련되므로 더 쉽고 안전하게 작업할 수 있습니다.
- 사용자 계정 권한 부여의 경우 Azure Databricks OAuth의 인증 부분인 액세스 토큰 생성 및 관리는 도구와 SDK가 표준을 구현하는 한 Databricks 클라이언트 통합 인증처리됩니다. 그렇지 않은 경우 Azure Databricks CLI 명령 및 API 요청에서 직접 사용할 OAuth 코드 검증 도구 및 챌린지 쌍을 수동으로 생성할 수 있습니다. 1단계: OAuth 코드 검증 도구 및 코드 챌린지 쌍 생성을 참조하세요.
- 서비스 주체 권한 부여의 경우 Azure Databricks OAuth는 호출자가 요청에 권한을 부여할 수 있는 토큰 엔드포인트 URL과 함께 클라이언트 자격 증명을 제공해야 합니다. (Databricks 통합 클라이언트 인증을 지원하는 Azure Databricks 도구 및 SDK를 사용하는 경우 이 작업이 처리됩니다.) 자격 증명에는 고유한 클라이언트 ID 및 클라이언트 암호 가 포함됩니다. 코드를 실행할 Databricks 서비스 주체인 클라이언트는 Databricks 작업 영역에 할당되어야 합니다. 액세스하는 작업 영역에 서비스 주체를 할당하면 클라이언트 ID와 특정 환경 변수로 설정할 클라이언트 암호가 제공됩니다.
이러한 환경 변수는 다음과 같습니다.
환경 변수 | 설명 |
---|---|
DATABRICKS_HOST |
이 환경 변수는 Azure Databricks 계정 콘솔(http://accounts.cloud.databricks.com ) 또는 Azure Databricks 작업 영역 URL(https://{workspace-id}.cloud.databricks.com )의 URL로 설정됩니다. 코드에서 수행할 작업 유형에 따라 호스트 URL 유형을 선택합니다. 특히 Azure Databricks 계정 수준 CLI 명령 또는 REST API 요청을 사용하는 경우 이 변수를 Azure Databricks 계정 URL로 설정합니다. Azure Databricks 작업 영역 수준 CLI 명령 또는 REST API 요청을 사용하는 경우 Azure Databricks 작업 영역 URL을 사용합니다. |
DATABRICKS_ACCOUNT_ID |
Azure Databricks 계정 작업에 사용됩니다. Azure Databricks 계정 ID입니다. 이를 가져오려면 계정 ID 찾기를 참조하세요. |
DATABRICKS_CLIENT_ID |
(서비스 주체 OAuth만 해당) 서비스 주체를 만들 때 할당 받은 클라이언트 ID 는입니다. |
DATABRICKS_CLIENT_SECRET |
(서비스 주체 OAuth만 해당) 서비스 주체 를 만들 때 생성한 클라이언트 암호. |
직접 또는 클라이언트 컴퓨터에서 Databricks 구성 프로필(.databrickscfg
)을 사용하여 설정할 수 있습니다.
OAuth 액세스 토큰을 사용하려면 Azure Databricks 작업 영역 또는 계정 관리자가 사용자 계정 또는 서비스 주체에게 코드에서 액세스할 계정 및 작업 영역 기능에 대한 CAN USE
권한을 부여해야 합니다.
클라이언트에 대한 OAuth 권한 부여를 구성하고 클라우드 공급자별 권한 부여 옵션을 검토하는 방법에 대한 자세한 내용은 통합 클라이언트 인증을 참조하세요.
타사 서비스 및 도구에 대한 인증
타사 서비스, 도구 또는 SDK에 액세스하는 코드를 작성하는 경우 타사에서 제공하는 인증 및 권한 부여 메커니즘을 사용해야 합니다. 그러나 Azure Databricks 계정 또는 작업 영역 리소스에 대한 타사 도구, SDK 또는 서비스 액세스 권한을 부여해야 하는 경우 Databricks는 다음과 같은 지원을 제공합니다.
Databricks Terraform 공급자: 이 도구는 Azure Databricks 사용자 계정을 사용하여 사용자 대신 Terraform의 Azure Databricks API에 액세스할 수 있습니다. 자세한 내용은 Terraform을 사용하여 서비스 주체 프로비저닝을 참조하세요.
GitHub, GitLab, Bitbucket과 같은 Git 공급자는 Databricks 서비스 주체를 사용하여 Azure Databricks API에 액세스할 수 있습니다. 자세한 내용은 CI/CD용 서비스 주체를 참조하세요.
Jenkins는 Databricks 서비스 주체를 사용하여 Azure Databricks API에 액세스할 수 있습니다. 자세한 내용은 Azure Databricks에서 Jenkins를 사용하는 CI/CD를 참조하세요.
Azure DevOps는 MS Entra ID 기반 서비스 주체를 사용하여 Azure Databricks API에 액세스할 수 있습니다. 자세한 내용은 Databricks에서 Azure DevOps로 인증을 참조하세요.
Azure Databricks 구성 프로필
Azure Databricks 구성 프로필에는 Azure Databricks에서 액세스 권한을 부여하는 데 필요한 설정 및 기타 정보가 포함되어 있습니다. Azure Databricks 구성 프로필은 사용할 도구, SDK, 스크립트, 앱에 대한 로컬 클라이언트 파일에 저장됩니다. 표준 구성 프로필 파일의 이름은 .databrickscfg
입니다.
자세한 내용은 Azure Databricks 구성 프로필을 참조하세요.