CI/CD에 대한 서비스 주체
이 문서에서는 Azure Databricks에서 CI/CD용 서비스 주체를 사용하는 방법을 설명합니다. 서비스 주체는 다음을 비롯하여 자동화된 도구 및 애플리케이션과 함께 사용하기 위해 만들어진 ID입니다.
- GitHub Actions, Azure Pipelines 및 GitLab CI/CD와 같은 CI/CD 플랫폼
- 데이터 파이프라인의 Airflow
- Jenkins
보안 모범 사례로 Databricks는 AZURE Databricks 사용자 또는 Databricks 개인용 액세스 토큰 대신 서비스 주체 및 해당 토큰을 사용하여 CI/CD 플랫폼에 Azure Databricks 리소스에 대한 액세스 권한을 부여하는 것이 좋습니다. 이 방법의 몇 가지 이점은 다음과 같습니다.
- 사용자와 독립적으로 서비스 주체에 대한 Azure Databricks 리소스에 대한 액세스 권한을 부여하고 제한할 수 있습니다. 예를 들어 서비스 주체가 Azure Databricks 작업 영역에서 관리자 역할을 하는 것을 금지하면서 작업 영역의 다른 특정 사용자가 계속 관리자 역할을 하도록 허용할 수 있습니다.
- 사용자는 CI/CD 플랫폼에서 액세스하지 못하도록 액세스 토큰을 보호할 수 있습니다.
- 다른 사용자에게 영향을 주지 않고 서비스 주체를 일시적으로 사용하지 않도록 설정하거나 영구적으로 삭제할 수 있습니다. 예를 들어 악의적인 방식으로 사용되고 있다고 의심되는 서비스 주체에서 액세스를 일시 중지하거나 제거할 수 있습니다.
- 사용자가 조직을 떠나는 경우 서비스 주체에 영향을 주지 않고 해당 사용자를 제거할 수 있습니다.
CI/CD 플랫폼에 AZURE Databricks 작업 영역에 대한 액세스 권한을 부여하려면 다음을 수행합니다.
서비스 연결을 사용하여 지원되는 다음 MS Entra 인증 메커니즘 중 하나를 선택합니다.
인증 메커니즘으로 Azure CLI를 사용하는 Microsoft Entra 워크로드 ID 페더레이션입니다.
- Microsoft Entra 클라이언트 암호를 인증 메커니즘으로 사용하는 Microsoft Entra 서비스 주체입니다.
- Microsoft Entra ID 관리 ID입니다.
Microsoft Entra를 사용하여 인증을 구현하는 방법에 대한 자세한 내용은 Databricks에서 Azure DevOps로 인증을 참조 하세요.
- Microsoft Entra 클라이언트 암호를 인증 메커니즘으로 사용하는 Microsoft Entra 서비스 주체입니다.
요구 사항
- 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 개인용 액세스 토큰을 추가하려면 다음을 수행합니다.
아직 없는 경우 GitHub 컴퓨터 사용자를 만듭니다. GitHub 컴퓨터 사용자는 GitHub에서 작업을 자동화하는 데 사용할 수 있는 GitHub 개인 계정입니다(사용자 고유의 GitHub 개인 계정과 별개). 아직 없는 경우 GitHub 컴퓨터 사용자로 사용할 별도의 새 GitHub 계정을 만듭니다.
참고 항목
별도의 새 GitHub 계정을 GitHub 컴퓨터 사용자로 만드는 경우 사용자 고유의 GitHub 개인 계정의 이메일 주소와 연결할 수 없습니다. 대신 이 별도의 새 GitHub 계정을 GitHub 컴퓨터 사용자로 연결할 수 있는 별도의 이메일 주소를 가져오는 방법을 조직의 이메일 관리자에게 문의하세요.
별도의 이메일 주소와 연결된 GitHub 컴퓨터 사용자 및 조직 내의 GitHub 개인용 액세스 토큰을 관리하는 방법은 조직의 계정 관리자에게 문의하세요.
GitHub 컴퓨터 사용자에게 GitHub 리포지토리에 대한 액세스 권한을 부여합니다. GitHub 설명서에서 팀 또는 사용자 초대를 참조하세요. 초대를 수락하려면 먼저 GitHub 개인 계정에서 로그아웃한 다음, GitHub 컴퓨터 사용자로 다시 로그인해야 할 수 있습니다.
컴퓨터 사용자로 GitHub에 로그인한 다음, 해당 컴퓨터 사용자에 대한 GitHub 개인용 액세스 토큰을 만듭니다. GitHub 설명서에서 개인용 액세스 토큰 만들기를 참조하세요. GitHub 개인용 액세스 토큰에 리포지토리 액세스 권한을 제공해야 합니다.
서비스 주체의 Microsoft Entra ID 토큰과 GitHub 기기 사용자 이름을 수집한 다음, 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 사용자 이름
그런 다음 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
의 일부로 제공되는 파일)은 다음과 같은 사용자 지정 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 사용자 이름
그런 다음 Databricks Git 폴더에서서비스를 주체로 사용을 참조하세요.