Azure Databricks 리소스에 대한 액세스 인증

Databricks CLI 또는 REST API를 사용하여 Azure Databricks 리소스에 액세스하려면 클라이언트가 리소스에 액세스하는 데 필요한 권한이 있는 Azure Databricks 계정을 사용하여 인증해야 합니다. Databricks CLI 명령을 안전하게 실행하거나 계정 또는 작업 영역에 대해 권한 있는 액세스가 필요한 Databricks API 요청을 호출하려면 유효한 Azure Databricks 계정 자격 증명을 기반으로 액세스 토큰을 제공해야 합니다. 이 문서에서는 이러한 자격 증명을 제공하고 Azure Databricks 작업 영역 또는 계정에 대한 액세스 권한을 부여하는 인증 옵션을 설명합니다.

다음 표에서는 Azure Databricks 계정에 사용할 수 있는 인증 방법을 보여줍니다.

Azure Databricks 인증 방법

Azure Databricks 도구와 SDK는 하나 이상의 지원되는 Azure Databricks 인증 방법에서 작동하므로 사용 사례에 가장 적합한 인증 방법을 선택할 수 있습니다. 자세한 내용은 개발자 도구 지침의 도구 또는 SDK 설명서를 참조하세요.

메서드 설명 사용 사례
서비스 주체에 대한 OAuth(OAuth M2M) 서비스 주체에 대한 수명이 짧은 OAuth 토큰입니다. 완전 자동화 및 CI/CD 워크플로와 같은 무인 인증 시나리오입니다.
사용자에 대한 OAuth(OAuth U2M) 사용자에 대한 수명이 짧은 OAuth 토큰입니다. 웹 브라우저를 사용하여 메시지가 표시되면 실시간으로 Azure 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 토큰을 수동으로 만들지 않는 것이 좋습니다.

어떤 인증 방법을 선택해야 하나요?

Databricks CLI 명령 또는 Azure Databricks 리소스 액세스를 위한 API 호출을 인증하는 두 가지 옵션이 있습니다.

  • Azure Databricks 사용자 계정("사용자-컴퓨터" 인증 또는 U2M이라고 함)을 사용합니다. 로컬 클라이언트 환경에서 Azure Databricks CLI 명령을 실행하거나 소유하고 단독으로 실행하는 코드에서 Azure Databricks API 요청을 호출하는 경우에만 선택합니다.
  • Azure Databricks 서비스 주체("컴퓨터 대 컴퓨터" 인증 또는 M2M이라고 함)를 사용합니다. 다른 사용자가 코드를 실행하거나(특히 앱의 경우) Azure Databricks CLI 명령 또는 API 요청을 호출하는 자동화를 빌드하는 경우 이를 선택합니다.
  1. Azure Databricks를 사용하는 경우 MS Entra 서비스 주체를 사용하여 Azure Databricks 계정 또는 작업 영역에 대한 액세스를 인증할 수도 있습니다. 그러나 Databricks에서는 MS Entra 서비스 주체 인증을 통해 제공된 OAuth 인증과 함께 Databricks 서비스 주체를 사용하는 것이 좋습니다. Databricks 인증은 Azure Databricks에서만 인증할 때 더 강력한 OAuth 액세스 토큰을 사용하기 때문입니다.

MS Entra 서비스 주체를 사용하여 Databricks 리소스에 액세스하는 방법에 대한 자세한 내용은 MS Entra 서비스 주체 인증을 참조하세요.

또한 Databricks API를 호출하는 데 사용할 계정에 연결된 액세스 토큰이 있어야 합니다. 이 토큰은 OAuth 2.0 액세스 토큰 또는 PAT(개인용 액세스 토큰)일 수 있습니다. 그러나 Azure Databricks는 OAuth 토큰이 기본적으로 자동으로 새로 고쳐지고 액세스 토큰을 직접 관리할 필요가 없으므로 권한 부여를 위해 PAT를 통해 OAuth를 사용하는 것이 좋습니다. 토큰 하이재킹 및 원치 않는 액세스에 대한 보안이 향상됩니다. OAuth가 사용자 대신 액세스 토큰을 만들고 관리하므로 사용자는 직접 토큰 문자열을 제공하는 대신 OAuth 토큰 엔드포인트 URL, 클라이언트 ID, Azure Databricks 작업 영역에서 생성하는 비밀을 제공합니다. PAT는 정기적으로 감사 및 회전 또는 해지되지 않거나 토큰 문자열 및 암호가 개발 환경에서 안전하게 관리되지 않는 경우 송신 기회를 제공하는 수명이 긴 토큰의 위험을 노출합니다.

OAuth를 사용하여 Azure Databricks로 인증하는 방법

Azure Databricks는 특정 자격 증명 값으로 설정할 수 있는 기본 환경 변수 집합을 사용하여 인증을 지원하는 통합 클라이언트 인증을 제공합니다. 이렇게 하면 이러한 환경 변수가 Azure Databricks CLI 명령을 실행하거나 Azure Databricks API를 호출하는 환경과 관련되므로 더 쉽고 안전하게 작업할 수 있습니다.

  • 사용자 계정(사용자-컴퓨터) 인증의 경우 도구 및 SDK가 표준을 구현하는 한Azure Databricks OAuth는 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: (M2M OAuth에만 해당) 서비스 주체를 만들 때 할당된 클라이언트 ID입니다.
  • DATABRICKS_CLIENT_SECRET: (M2M 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 구성 프로필을 참조하세요.