CI/CD에 대한 서비스 주체

이 문서에서는 Azure Databricks에서 CI/CD용 서비스 주체를 사용하는 방법을 설명합니다. 서비스 주체는 다음을 비롯하여 자동화된 도구 및 애플리케이션과 함께 사용하기 위해 만들어진 ID입니다.

보안 모범 사례로 Databricks는 AZURE Databricks 사용자 또는 Databricks 개인용 액세스 토큰 대신 서비스 주체 및 해당 토큰을 사용하여 CI/CD 플랫폼에 Azure Databricks 리소스에 대한 액세스 권한을 부여하는 것이 좋습니다. 이 방법의 몇 가지 이점은 다음과 같습니다.

  • 사용자와 독립적으로 서비스 주체에 대한 Azure Databricks 리소스에 대한 액세스 권한을 부여하고 제한할 수 있습니다. 예를 들어 서비스 주체가 Azure Databricks 작업 영역에서 관리자 역할을 하는 것을 금지하면서 작업 영역의 다른 특정 사용자가 계속 관리자 역할을 하도록 허용할 수 있습니다.
  • 사용자는 CI/CD 플랫폼에서 액세스하지 못하도록 액세스 토큰을 보호할 수 있습니다.
  • 다른 사용자에게 영향을 주지 않고 서비스 주체를 일시적으로 사용하지 않도록 설정하거나 영구적으로 삭제할 수 있습니다. 예를 들어 악의적인 방식으로 사용되고 있다고 의심되는 서비스 주체에서 액세스를 일시 중지하거나 제거할 수 있습니다.
  • 사용자가 조직을 떠나는 경우 서비스 주체에 영향을 주지 않고 해당 사용자를 제거할 수 있습니다.

CI/CD 플랫폼에 AZURE Databricks 작업 영역에 대한 액세스 권한을 부여하려면 다음을 수행합니다.

  1. Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체를 만듭니다.
  2. CI/CD 플랫폼에서 지원하는 액세스 토큰 유형에 따라 Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체에 대한 Azure Databricks OAuth 토큰 또는 Microsoft Entra ID 토큰을 생성합니다. 자세한 내용은 CI/CD 플랫폼의 설명서를 참조하세요.
  3. 이 Azure Databricks OAuth 토큰 또는 Microsoft Entra ID 토큰을 CI/CD 플랫폼에 제공합니다.

1-2단계를 완료하려면 서비스 주체 관리를 참조 하세요.

3단계를 완료하려면 이 문서의 지침을 완료합니다.

필요에 따라 CI/CD 플랫폼 시나리오에서 Azure Databricks Git 폴더와 함께 Azure Databricks 작업 영역을 사용하려는 경우 Azure Databricks 작업 영역에 Git 공급자 자격 증명 추가를 참조하세요. 예를 들어 Git 공급자가 작업 영역에 액세스하도록 하고 작업 영역의 Azure Databricks Git 폴더를 Git 공급자와 함께 사용하려고 할 수 있습니다. 그러나 CI/CD 플랫폼에서 작업 영역을 사용하기 위해 Azure Databricks Git 폴더를 사용할 필요는 없습니다.

요구 사항

  • Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체에 대한 Azure Databricks OAuth 토큰 또는 Microsoft Entra ID 토큰입니다. Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체 및 Azure Databricks OAuth 토큰 또는 Microsoft Entra ID 토큰을 만들려면 서비스 주체 관리를 참조 하세요.
  • Git 공급자가 있는 계정

GitHub Actions 설정

GitHub Actions는 Azure Databricks 작업 영역에 액세스할 수 있어야 합니다. Azure Databricks Git 폴더사용하려면 작업 영역도 GitHub에 액세스할 수 있어야 합니다.

GitHub Actions가 Azure Databricks 작업 영역에 액세스할 수 있도록 하려면 Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체에 대한 정보를 GitHub Actions에 제공해야 합니다. 여기에는 GitHub Action의 요구 사항에 따라 애플리케이션(클라이언트) ID, Microsoft Entra ID 관리 서비스 주체의 디렉터리(테넌트) ID , Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체의 클라이언트 암호 또는 access_token Azure Databricks 관리 서비스 주체의 값과 같은 정보가 포함될 수 있습니다. 자세한 내용은 서비스 주체 관리 및 GitHub Action의 설명서를 참조하세요.

또한 Azure Databricks Git 폴더를 사용할 때 Azure Databricks 작업 영역에서 GitHub에 액세스할 수 있도록 하려면 GitHub 컴퓨터 사용자에 대한 GitHub 개인 액세스 토큰을 작업 영역에 추가해야 합니다.

GitHub Actions에 서비스 주체에 대한 정보 제공

이 섹션에서는 GitHub Actions가 Azure Databricks 작업 영역에 액세스하도록 설정하는 방법을 설명합니다.

보안 모범 사례로 Databricks는 GitHub Actions 파일의 본문에 서비스 주체에 대한 정보를 직접 입력하지 않는 것이 좋습니다. 대신 GitHub 암호화 비밀을 사용하여 GitHub Actions에 이 정보를 제공해야 합니다.

Databricks에서 GitHub Actions를 사용하는 연속 통합 및 지속적인 업데이트에 나열한 것과 같은 GitHub Actions는 다음과 같은 다양한 GitHub 암호화 비밀을 사용합니다.

  • DATABRICKS_HOST - 작업 영역 인스턴스 이름이 뒤에 오는 https:// 값(예: adb-1234567890123456.7.azuredatabricks.net).
  • AZURE_CREDENTIALS- Microsoft Entra ID 관리 서비스 주체에 대한 정보를 가져오기 위해 Azure CLI를 실행하는 출력을 나타내는 JSON 문서입니다. 자세한 내용은 GitHub Action에 대한 설명서를 참조하세요.
  • AZURE_SP_APPLICATION_ID- Microsoft Entra ID 관리 서비스 주체에 대한 애플리케이션(클라이언트) ID의 값입니다.
  • AZURE_SP_TENANT_ID- Microsoft Entra ID 관리 서비스 주체에 대한 디렉터리(테넌트) ID의 값입니다.
  • AZURE_SP_CLIENT_SECRET- Microsoft Entra ID 관리 서비스 주체에 대한 클라이언트 비밀 값의 입니다.

GitHub Action에 필요한 GitHub 암호화 비밀에 대한 자세한 내용은 서비스 주체 관리 및 해당 GitHub 작업에 대한 설명서를 참조하세요.

GitHub 리포지토리에 이러한 GitHub 암호화 비밀을 추가하려면 GitHub 설명서에서 리포지토리에 대한 암호화 비밀 만들기를 참조하세요. 이러한 GitHub 리포지토리 비밀을 추가하는 다른 방법은 GitHub 설명서의 암호화 비밀을 참조하세요.

Azure Databricks 작업 영역에 GitHub 컴퓨터 사용자에 대한 GitHub 개인용 액세스 토큰 추가

이 섹션에서는 Azure Databricks 작업 영역에서 Azure Databricks Git 폴더를 사용하여 GitHub에 액세스할 수 있도록 하는 방법을 설명합니다. 이것은 CI/CD 시나리오에서 선택적 작업입니다.

보안 모범 사례로 Databricks는 Azure Databricks 사용자 대신 서비스 주체를 사용해야 하는 여러 가지 이유로 GitHub 개인 계정 대신 GitHub 머신 사용자를 사용하는 것이 좋습니다. Azure Databricks 작업 영역에 GitHub 컴퓨터 사용자에 대한 GitHub 개인용 액세스 토큰을 추가하려면 다음을 수행합니다.

  1. 아직 없는 경우 GitHub 컴퓨터 사용자를 만듭니다. GitHub 컴퓨터 사용자는 GitHub에서 작업을 자동화하는 데 사용할 수 있는 GitHub 개인 계정입니다(사용자 고유의 GitHub 개인 계정과 별개). 아직 없는 경우 GitHub 컴퓨터 사용자로 사용할 별도의 새 GitHub 계정을 만듭니다.

    참고 항목

    별도의 새 GitHub 계정을 GitHub 컴퓨터 사용자로 만드는 경우 사용자 고유의 GitHub 개인 계정의 이메일 주소와 연결할 수 없습니다. 대신 이 별도의 새 GitHub 계정을 GitHub 컴퓨터 사용자로 연결할 수 있는 별도의 이메일 주소를 가져오는 방법을 조직의 이메일 관리자에게 문의하세요.

    별도의 이메일 주소와 연결된 GitHub 컴퓨터 사용자 및 조직 내의 GitHub 개인용 액세스 토큰을 관리하는 방법은 조직의 계정 관리자에게 문의하세요.

  2. GitHub 컴퓨터 사용자에게 GitHub 리포지토리에 대한 액세스 권한을 부여합니다. GitHub 설명서에서 팀 또는 사용자 초대를 참조하세요. 초대를 수락하려면 먼저 GitHub 개인 계정에서 로그아웃한 다음, GitHub 컴퓨터 사용자로 다시 로그인해야 할 수 있습니다.

  3. 컴퓨터 사용자로 GitHub에 로그인한 다음, 해당 컴퓨터 사용자에 대한 GitHub 개인용 액세스 토큰을 만듭니다. GitHub 설명서에서 개인용 액세스 토큰 만들기를 참조하세요. GitHub 개인용 액세스 토큰에 리포지토리 액세스 권한을 제공해야 합니다.

  4. 서비스 주체, GitHub 컴퓨터 사용자 이름에 대한 Microsoft Entra ID 토큰을 수집한 다음 , Azure Databricks 작업 영역에 Git 공급자 자격 증명을 추가합니다.

Azure Pipelines 설정

Azure Pipelines는 Azure Databricks 작업 영역에 액세스할 수 있어야 합니다. 또한 Azure Databricks Git 폴더를 사용하려는 경우 작업 영역에서 Azure Pipelines에 액세스할 수 있어야 합니다.

Azure Pipelines YAML 파이프라인 파일은 환경 변수를 사용하여 Azure Databricks 작업 영역에 액세스합니다. 이러한 환경 변수에는 다음이 포함됩니다.

  • DATABRICKS_HOST - 작업 영역 인스턴스 이름이 뒤에 오는 https:// 값(예: adb-1234567890123456.7.azuredatabricks.net).
  • DATABRICKS_TOKEN- Microsoft Entra ID 관리 서비스 주체에 대한 Microsoft Entra ID 토큰을 만든 후 복사한 값의 값 token_value 입니다.

이러한 환경 변수를 Azure 파이프라인에 추가하려면 Azure Pipelines에서 Azure Key Value 비밀 사용 및 Azure 설명서의 비밀 변수 설정을 참조하세요.

다음 Databricks 블로그도 참조하세요.

CI/CD 시나리오의 경우 선택 사항: 작업 영역에서 Azure Databricks Git 폴더를 사용하고 작업 영역이 Azure Pipelines에 액세스할 수 있도록 하려면 다음을 수집합니다.

  • 서비스 주체에 대한 Microsoft Entra ID 토큰
  • Azure Pipelines 사용자 이름

그런 다음, Azure Databricks 작업 영역에 Git 공급자 자격 증명을 추가합니다.

GitLab CI/CD 설정

GitLab CI/CD는 Azure Databricks 작업 영역에 액세스할 수 있어야 합니다. 또한 Azure Databricks Git 폴더사용하려는 경우 작업 영역에서 GitLab CI/CD에 액세스할 수 있어야 합니다.

Azure Databricks 작업 영역에 액세스하기 위해 GitLab CI/CD .gitlab-ci.yml 파일(예: dbx에서 기본 Python 템플릿의 일부로 제공되는 파일)은 다음과 같은 사용자 지정 CI/CD 변수를 사용합니다.

  • DATABRICKS_HOST - 작업 영역 인스턴스 이름이 뒤에 오는 https:// 값(예: adb-1234567890123456.7.azuredatabricks.net).
  • DATABRICKS_TOKEN- 서비스 주체에 token_value 대한 Microsoft Entra ID 토큰을 만든 후 복사한 값의 값입니다.

이러한 사용자 지정 변수를 GitLab CI/CD 프로젝트에 추가하려면 GitLab CI/CD 설명서의 프로젝트에 CI/CD 변수 추가를 참조하세요.

작업 영역에서 Databricks Git 폴더를 사용하고 작업 영역에서 GitLab CI/CD에 액세스할 수 있도록 하려면 다음을 수집합니다.

  • 서비스 주체에 대한 Microsoft Entra ID 토큰
  • GitLab CI/CD 사용자 이름

그런 다음 , Azure Databricks 작업 영역에 Git 공급자 자격 증명을 추가합니다.

Azure Databricks 작업 영역에 Git 공급자 자격 증명 추가

이 섹션에서는 Azure Databricks 작업 영역에서 Azure Databricks Git 폴더용 Git 공급자에 액세스할 수 있도록 하는 방법을 설명합니다. 이것은 CI/CD 시나리오에서는 선택 사항입니다. 예를 들어 Git 공급자가 Azure Databricks 작업 영역에만 액세스하도록 할 수 있지만 작업 영역의 Azure Databricks Git 폴더를 Git 공급자와 함께 사용하지 않을 수도 있습니다. 이 경우 이 섹션을 건너뛰어도 됩니다.

시작하기 전에 다음 정보 및 도구를 수집합니다.

  • 서비스 주체에 대한 Microsoft Entra ID 토큰입니다.
  • Git 공급자와 연결된 사용자 이름
  • Git 공급자의 사용자와 연결된 액세스 토큰

참고 항목

Azure Pipelines의 경우 Azure 웹 사이트에서 개인용 액세스 토큰 사용을 참조하세요.

  • Databricks CLI 버전 0.205 이상. Databricks CLI란?을 참조하세요. Azure Databricks 사용자 인터페이스는 사용할 수 없습니다.
  • 파일의 Azure Databricks 구성 프로필 .databrickscfg 로, 작업 영역별 Azure Databricks URLhttps://adb-1234567890123456.7.azuredatabricks.net을 나타내고 token 서비스 주체에 대한 Microsoft Entra ID 토큰을 나타내는 관련 host 항목에 대해 프로필 필드가 올바르게 설정됩니다. (작업 영역 사용자에 대해 Databricks 개인용 액세스 토큰을 사용하지 마세요.) Azure Databricks 개인용 액세스 토큰 인증을 참조하세요.

Databricks CLI를 사용하여 다음 명령을 실행합니다.

databricks git-credentials create <git-provider-short-name> --git-username <git-provider-user-name> --personal-access-token <git-provider-access-token> -p <profile-name>
  • 다음 중 하나를 사용합니다.<git-provider-short-name>
    • GitHub의 경우 GitHub를 사용합니다.
    • Azure Pipelines의 경우 AzureDevOpsServices를 사용합니다.
    • GitLab CI/CD의 경우 GitLab을 사용합니다.
  • Git 공급자와 연결된 사용자 이름으로 바꿉 <git-provider-user-name> 습니다.
  • Git 공급자에 대한 사용자와 연결된 액세스 토큰으로 바꿉 <git-provider-access-token> 습니다.
  • 파일의 Azure Databricks 구성 프로필 .databrickscfg 이름으로 바꿉 <profile-name> 니다.

호출이 성공했는지 확인하려면 다음 Databricks CLI 명령 중 하나를 실행하고 출력을 검토할 수 있습니다.

databricks git-credentials list -p <profile-name>
databricks git-credentials get <credential-id> -p <profile-name>