Microsoft Entra ID를 사용하여 dbt Core에서 Azure Databricks 로그온 구성
Important
이 기능은 공개 미리 보기 상태입니다.
이 문서에서는 Microsoft Entra ID를 사용하여 dbt Core에서 Azure Databricks 로그온을 구성하는 방법을 설명합니다. Azure Databricks 계정 관리자로 이 일회성 구성을 완료한 후 사용자는 SSO(Single Sign-On)를 사용하여 Azure Databricks를 dbt Core에 연결할 수 있습니다.
Microsoft Entra ID를 사용하는 것 외에도 Databricks M2M OAuth를 사용하여 dbt Core와 통합할 수 있습니다. 파트너 OAuth 애플리케이션 사용 또는 사용 안 함을 참조 하세요.
시작하기 전에
이 문서의 단계를 완료하기 전에 다음을 수행해야 합니다.
- 로컬 dbt Core 환경에 대한 액세스 권한 부여
- Azure Databricks 작업 영역에서 SQL 웨어하우스에 대한 서버 호스트 이름 및 HTTP 경로 가져오기
- Azure Databricks 계정 관리자 되기
- Azure Databricks 계정에 대한 Azure 테넌트에서 Azure 앱 등록을 만들 수 있는 권한이 있습니다.
dbt Core에 대한 M2M(컴퓨터-컴퓨터) 인증 구성
이 섹션에서는 Azure Databricks 및 dbt Core에 대해 M2M(컴퓨터-컴퓨터) 인증을 구성하는 방법을 설명합니다. OAuth의 M2M 워크플로는 CI/CD 통합과 같은 자동화된 프로세스를 통해 사람의 개입 없이 리소스에 안전하게 액세스할 수 있도록 합니다. dbt 클라이언트는 서비스 주체로 실행되고, 서비스 주체를 사용하여 Azure AD에서 OAuth 토큰을 획득하고, 이 토큰을 활용하여 Databricks SQL API와 연결합니다.
Azure 앱 등록 만들기
- Azure Portal을 사용하여 Azure Databricks 계정
https://portal.azure.com/<tenant-id>
의 Azure 테넌트에 로그인합니다. - 앱 등록을 클릭합니다. 앱 등록 표시되지 않으면 추가 서비스를 클릭하고 필터 서비스 텍스트 상자를 사용하여 앱 등록 검색합니다.
- 새 등록을 클릭합니다.
- 앱의 이름을 입력합니다.
- 리디렉션 URI의 경우 드롭다운 메뉴에서 공용 클라이언트/네이티브(모바일 및 데스크톱)를 선택하고 입력
http://localhost:8020
합니다. - 등록을 클릭합니다.
- 애플리케이션(클라이언트) ID를 복사합니다. 이 값은 나중에 필요합니다.
Azure 앱 등록에 대한 클라이언트 암호 생성
- Azure Portal에서 이전 단계에서 만든 앱 등록을 선택합니다.
- 인증서 및 비밀을 클릭한 다음 새 클라이언트 암호를 클릭합니다.
- 설명을 입력한 다음 추가를 클릭합니다.
- 비밀 값을 복사합니다. 나중에 이 값이 필요하며 비밀 생성 후에만 액세스할 수 있습니다.
작업 영역에 Microsoft Entra ID 서비스 주체 추가
- Azure Databricks 작업 영역에서 오른쪽 위에 있는 사용자 이름을 클릭한 다음 설정을 클릭합니다.
- ID 및 액세스 탭을 클릭합니다.
- 서비스 주체 옆에 있는 관리를 클릭합니다.
- 서비스 주체 추가를 클릭한 다음 클라이언트 ID를 클릭합니다.
- ApplicationId의 경우 이전에 복사한 애플리케이션(클라이언트) ID를 입력합니다.
- 표시 이름에 서비스 주체의 논리적 이름을 입력한 다음 추가를 클릭합니다.
dbt 프로젝트에 M2M 프로필 추가
이전에 복사한 애플리케이션(클라이언트) ID 및 클라이언트 비밀을 환경 변수로 설정합니다. Databricks는 비밀
profiles.yml
과 같은 중요한 정보를 직접 저장하는 것을 권장하지 않습니다.~ export DATABRICKS_CLIENT_ID=<client-id> ~ export DATABRICKS_CLIENT_SECRET=<client-secret>
dbt 프로젝트의 파일에 M2M 프로필을
profiles.yml
추가합니다.다음은 M2M 프로필
azure-oauth-m2m
이 지정된 예제profiles.yml
파일입니다.azure-oauth-m2m
target
M2M 프로필을 dbt에서 사용하는 기본 실행 프로필로 설정합니다.databricks_demo: outputs: ... azure-oauth-m2m: catalog: uc_demos host: "adb-xxx.azuredatabricks.net" http_path: "/sql/1.0/warehouses/9196548d010cf14d" schema: databricks_demo threads: 1 type: databricks auth_type: oauth client_id: "{{ env_var('DATABRICKS_CLIENT_ID') }}" client_secret: "{{ env_var('DATABRICKS_CLIENT_SECRET') }}" target: azure-oauth-m2m
서비스 주체가 SQL 웨어하우스에 액세스할 수 있도록 권한 부여
- 사이드바에서 SQL Warehouse를 클릭하고 SQL 웨어하우스를 클릭한 다음 사용 권한을 클릭합니다.
- 이 문서의 앞부분에서 만든 서비스 주체 옆에 있는 드롭다운 메뉴에서 CAN USE를 선택합니다.
OAuth 애플리케이션 설정 확인
dbt debug
명령을 실행하여 OAuth 애플리케이션이 올바르게 구성되었는지 확인합니다. 예시:
dbt debug --target azure-oauth-m2m
다음은 성공적인 dbt debug
실행의 예제 출력입니다.
...
Configuration:
profiles.yml file [OK found and valid]
dbt_project.yml file [OK found and valid]
Required dependencies:
- git [OK found]
Connection:
...
Connection test: OK connection ok
dbt Core에 대한 U2M(사용자-컴퓨터) 인증 구성
이 섹션에서는 Azure Databricks 및 dbt Core를 사용하여 사용자-컴퓨터 인증을 구성하는 방법을 설명합니다. OAuth의 U2M 워크플로를 사용하면 Azure AD에서 브라우저 팝업을 통해 OAuth 토큰을 안전하게 획득하여 dbt 클라이언트와 같은 사용자를 대신하여 시스템에 액세스할 수 있습니다. Dbt는 이 토큰을 사용하여 Databricks SQL API에 연결하여 인증 및 권한 부여를 간소화합니다.
Azure 앱 등록 만들기
- Azure Portal을 사용하여 Azure Databricks 계정
https://portal.azure.com/<tenant-id>
의 Azure 테넌트에 로그인합니다. - 앱 등록을 클릭합니다. 앱 등록 표시되지 않으면 추가 서비스를 클릭하고 필터 서비스 텍스트 상자를 사용하여 앱 등록 검색합니다.
- 새 등록을 클릭합니다.
- 앱의 이름을 입력합니다.
- 리디렉션 URI의 경우 드롭다운 메뉴에서 공용 클라이언트/네이티브(모바일 및 데스크톱)를 선택하고 입력
http://localhost:8020
합니다. - 등록을 클릭합니다.
- 애플리케이션(클라이언트) ID 및 테넌트 ID를 복사합니다. 이러한 값은 나중에 필요합니다.
dbt 프로젝트에 U2M 프로필 추가
dbt 프로젝트의 파일에 U2M 프로필을 profiles.yml
추가합니다.
다음은 U2M 프로필 azure-oauth-u2m
이 지정된 예제 profiles.yml
파일입니다. azure-oauth-u2m
target
U2M 프로필을 dbt에서 사용하는 기본 실행 프로필로 설정합니다.
databricks_demo:
outputs:
azure-oauth-u2m:
catalog: uc_demos
host: "adb-xxx.azuredatabricks.net"
http_path: "/sql/1.0/warehouses/9196548d010cf14d"
schema: databricks_demo
threads: 1
type: databricks
auth_type: oauth
client_id: "9729e77e-ba94-4d53-8cfb-bb609f43f881"
target: azure-oauth-u2m
OAuth 애플리케이션 설정 확인
dbt debug
명령을 실행하여 OAuth 애플리케이션이 올바르게 구성되었는지 확인합니다. 예시:dbt debug --target azure-oauth-u2m
브라우저에서 요청된 사용 권한 페이지가 열립니다.
동의를 클릭합니다.
다음은 성공적인 dbt debug
실행의 예제 출력입니다.
...
Configuration:
profiles.yml file [OK found and valid]
dbt_project.yml file [OK found and valid]
Required dependencies:
- git [OK found]
Connection:
...
Connection test: OK connection ok
추가 리소스
새 dbt Core 프로젝트를 만들고 SSO 인증을 사용하여 Azure Databricks에 연결하려면 dbt Core에 연결을 참조하세요.