다음을 통해 공유


Microsoft Entra 서비스 주체를 사용하여 Azure Databricks Git 폴더에 대한 액세스 인증

Microsoft Entra 서비스 주체를 사용하여 Azure DevOps(Azure Repos)에서 호스트하는 Azure Databricks Git 폴더에 대한 인증된 액세스를 구성하는 방법을 알아봅니다.

Databricks 프로젝트에 Azure Repos Git 리포지토리에서 지원되는 Databricks Git 폴더가 있고 자동화에서 관리하려는 경우 이 문서의 정보를 사용하여 Microsoft Entra 서비스 주체 및 Azure DevOps를 사용하여 인증을 구성할 수 있습니다. 이 작업을 완료하면 자동화에 사용할 수 있는 인증된 Databricks Git 자격 증명이 있습니다.

PAT가 아닌 Microsoft Entra를 사용하는 이유는 무엇인가요?

과거에는 리소스에 대한 특정 액세스 및 권한이 필요한 API를 호출할 때 PAT(개인 액세스 토큰)를 인증하는 기본 방법이었습니다. 이러한 전달자 토큰은 사용자 이름과 암호를 나타내며, 제시된 보안 위험을 최소화하기 위해 정기적으로 순환해야 했습니다. Microsoft Entra ID 액세스 토큰은 매시간 이러한 토큰의 회전을 자동으로 관리하여 이러한 문제를 해결하며, Databricks는 Azure 리소스를 사용할 때 모범 사례로 권장합니다. Microsoft Entra 서비스 주체를 만들면 Microsoft Azure 사용자 계정을 사용하지 않고 이러한 리소스에 대한 액세스 권한에 부여된 권한을 관리할 수 있습니다.

요구 사항

다음을 갖춰야 합니다.

  • Databricks Git 폴더에 연결된 Azure Repos Git 리포지토리를 사용하여 Azure DevOps 프로젝트에 액세스합니다.
  • MS Entra 서비스 주체를 만들 수 있는 Azure 계정에 대한 권한입니다.
  • Azure CLI가 설치되어 있음.
  • 설치된 Databricks CLI입니다.

1단계: Microsoft Entra 서비스 주체 만들기

이미 구성된 Microsoft Entra 서비스 주체가 있는 경우 이 단계를 건너뛸 수 있습니다.

Microsoft Entra 서비스 주체를 만들려면 Microsoft Azure 설명서의 단계를 수행합니다. Microsoft Entra 앱을 등록하고 서비스 주체를 만듭니다. 이 문서의 "인증 설정" 섹션에서 처음 두 옵션을 무시하고 "옵션 3: 새 클라이언트 암호 만들기"의 단계를 따릅니다.

설정한 후에는 다음을 수행합니다.

  • 클라이언트 암호입니다. 임의로 나타나는 문자의 긴 문자열로 표시됩니다.
    • 서비스 주체 ID입니다. MS Entra 서비스 주체를 할당한 고유한 이름입니다. 이 이름은 사용 방법 및 시기(예 Databricks_CICD_SP: )를 나타내는 정보도 사용하는 것이 가장 좋습니다.

(이 구성에서는 사용되지 않으므로 MS Entra 구성 대화 상자에서 선택적 리디렉션 UI를 무시할 수 있습니다.)

이후 단계에서 사용할 수 있도록 이러한 항목을 어딘가에 복사합니다. 이 설명서의 프로세스를 성공적으로 완료한 후 이 정보를 보호하거나 삭제합니다.

2단계: MS Entra 서비스 주체에 대한 Azure DevOps 권한 구성

먼저 MS Entra 서비스 주체에게 Azure DevOps 리소스에 액세스할 수 있는 권한을 부여해야 합니다. 이렇게 하려면 Azure DevOps 포털을 사용해야 합니다.

  1. Azure DevOps 계정에 로그인하고 프로젝트로 이동합니다.

  2. 프로젝트 설정>사용 권한에서 읽기 프로그램을 클릭합니다.

    Azure DevOps의 프로젝트 설정에서 사용 권한 아래 멤버 패널의 내용

  3. 구성원 탭을 클릭하고 추가를 클릭한 다음 만든 MS Entra 서비스 주체의 이름을 추가합니다.

  4. 콘솔에서 Azure DevOps 조직의 조직 수준으로 돌아가서 왼쪽 창 아래쪽에 있는 조직 설정을 클릭합니다.

  5. 사용자 추가 사용자를> 클릭한 다음 다음과 같이 서비스 주체에 대한 액세스를 구성합니다.

    • 이전에 만든 ID를 사용하여 MS Entra 서비스 주체를 추가합니다.
    • Azure Repos에서 작업을 수행하는 데 필요한 최소 수준으로 서비스 주체에 대한 액세스를 구성합니다. 일반적으로 기본 수준 권한으로 충분합니다. 사용할 수준을 잘 모르는 경우 Azure DevOps 조직 관리자에게 문의하세요.
    • Azure DevOps 프로젝트에 서비스 주체를 추가합니다.
    • 프로젝트 참가자 그룹에 서비스 주체 를 할당합니다 .

    Azure DevOps의 조직 설정에 있는 사용자 패널의 내용

3단계: Azure Databricks의 서비스 주체에 사용 권한 할당

또한 Azure Databricks 내의 권한을 Microsoft Entra 서비스 주체에 할당해야 합니다.

  1. 계정에 대한 Azure Databricks 계정 관리 콘솔 에 로그인합니다.
  2. 사용자 및 그룹을 클릭합니다.
  3. 서비스 주체 탭을 클릭한 다음 서비스 주체 추가를 클릭합니다. Databricks 계정 관리 콘솔의 사용자 및 그룹 아래에 있는 서비스 주체 탭
  4. 서비스 주체 추가 페이지에서 Microsoft Entra ID 관리형을 클릭한 다음 "1단계: Microsoft Entra 서비스 주체 만들기"에서 Microsoft Entra 애플리케이션 ID 및 서비스 주체 이름을 추가합니다. 완료되면 추가를 클릭합니다. Databricks 계정 관리 콘솔의 서비스 주체 추가 대화 상자
  5. 추가된 Microsoft Entra 서비스 주체를 클릭하여 보안 주체 정보 탭을 확인합니다.
  6. 페이지의 왼쪽 아래에 있는 비밀 생성을 클릭하여 OAuth 비밀을 생성합니다. 이 비밀을 사용하면 Databricks CLI를 사용하여 Azure Databricks API 호출을 인증할 수 있습니다.
  7. 비밀 문자열과 클라이언트 ID를 복사한 다음 완료를 클릭합니다. 다음 단계에서 둘 다 사용합니다. 완료를 선택합니다. Databricks 계정 관리 콘솔의 비밀 생성 대화 상자
  8. 왼쪽 사이드바에서 작업 영역을 클릭하고 작업 영역을 선택한 다음 사용 권한 탭을 클릭합니다.
  9. 서비스 주체 "사용자" 권한을 부여한 다음 권한 추가를 클릭합니다.

Important

사용 권한 탭이 회색으로 표시되면 Azure Databricks 작업 영역이 Unity 카탈로그 메타스토어에 할당되지 않습니다. Databricks 관리자에게 문의하세요.

다음으로, Azure Databricks Git 자격 증명을 만듭니다.

4단계: Microsoft Entra ID 액세스 토큰을 만들고 Azure Databricks Git 자격 증명으로 저장합니다.

참고 항목

이 단계를 수행하려면 Azure 및 Databricks CLI를 모두 사용해야 합니다.

Azure Databricks에 인증하려면 이전 단계에서 만든 OAuth 비밀로 구성된 구성 프로필(.databrickscfg)이 있어야 합니다. 이 구성을 설정하려면 편집기 .databrickscfg 에서 파일을 열고 파일에 다음을 추가합니다.

[DEFAULT]
host = https://<workspace-url>.azuredatabricks.net/
client_id = <service principal ID>
client_secret = <Databricks OAuth token value>

Databricks 작업 영역 client_id 의 URL은 어디에 host 있으며, Microsoft Entra 서비스 주체 ID이며client_secret, "3단계: Azure Databricks의 서비스 주체에 사용 권한 할당"에서 만든 OAuth 클라이언트 암호입니다.

이제 이 프로세스에서 CLI 호출에 다음 값을 제공해야 합니다.

  • 1단계 또는 3단계의 서비스 주체 클라이언트 ID는 동일해야 합니다. (sp_id 다음 CLI 예제에서)
  • 1단계의 서비스 주체 이름입니다. (sp_name)
  • 1단계의 서비스 주체 클라이언트 비밀 문자열입니다. (sp_secret)
  • Azure DevOps 조직 이름입니다. (devops_org)
  • Azure DevOps 프로젝트 이름입니다. (devops_project)
  • Azure 리포지토리 이름입니다. (devops_repo)

또한 Azure 구독에 대한 Azure 테넌트 ID(tenant_id 다음 예제)가 필요합니다. 다음 지침에 따라 Azure Portal에서 가져옵니다.

이제 Azure CLI에서 Git 자격 증명을 만들 수 있습니다.

  1. Azure 및 Databricks CLI에 대한 액세스 권한이 있는 명령줄 창을 엽니다.
  2. 다음 Azure CLI 명령을 실행하여 Microsoft Entra 서비스 주체로 로그인합니다. az login --allow-no-subscriptions --service-principal -u $sp_id -p $sp_secret --tenant $tenant_id
  3. Microsoft Entra 서비스 주체는 Microsoft Entra ID 액세스 토큰을 요청하고 변수에 할당합니다. ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
  4. 액세스 토큰을 사용하여 Azure Databricks 액세스에 대해 구성한 권한 수준을 사용하여 Git 자격 증명을 만듭니다. databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $sp_name
  5. 마지막으로 Microsoft Entra 서비스 주체를 사용하여 새 Git 폴더를 만듭니다. databricks repos create \https://$sp_name@dev.azure.com/$devops_org/$devops_project/_git/$devops_repo

이제 이 Azure DevOps 리포지토리에 대한 해당 Git 폴더를 Azure Databricks 작업 영역에서 사용할 수 있습니다. Databricks Repos REST API 또는 Databricks CLI를 사용하여 코드에서 관리하는 Git 자격 증명을 제공할 수 있습니다.

이제 Azure DevOps로 범위가 지정된 Microsoft Entra ID 액세스 토큰을 생성하고 Databricks Git 자격 증명으로 저장하는 방법을 알아보았습니다.

모범 사례

Entra ID 액세스 토큰은 수명이 짧기 때문에 파이프라인은 다음을 사용하여 git-credentials updateDatabricks Git 자격 증명을 업데이트해야 합니다. 그런 다음 , 를 사용하여 databricks repos update끌어오기 요청을 트리거할 수 있습니다.

Important

프로덕션 설정에는 추가 보안 조치가 필요합니다. 프로덕션 환경에서는 Azure Key Vault와 같은 보안 비밀 저장소에 서비스 주체 클라이언트 암호 및 Databricks OAuth 토큰을 저장해야 합니다.

참고 항목