다음을 통해 공유


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 앱 등록 만들기

  1. Azure Portal을 사용하여 Azure Databricks 계정 https://portal.azure.com/<tenant-id>의 Azure 테넌트에 로그인합니다.
  2. 앱 등록을 클릭합니다. 앱 등록 표시되지 않으면 추가 서비스를 클릭하고 필터 서비스 텍스트 상자를 사용하여 앱 등록 검색합니다.
  3. 새 등록을 클릭합니다.
  4. 앱의 이름을 입력합니다.
  5. 리디렉션 URI의 경우 드롭다운 메뉴에서 공용 클라이언트/네이티브(모바일 및 데스크톱)를 선택하고 입력http://localhost:8020합니다.
  6. 등록을 클릭합니다.
  7. 애플리케이션(클라이언트) ID를 복사합니다. 이 값은 나중에 필요합니다.

Azure 앱 등록에 대한 클라이언트 암호 생성

  1. Azure Portal에서 이전 단계에서 만든 앱 등록을 선택합니다.
  2. 인증서 및 비밀을 클릭한 다음 새 클라이언트 암호를 클릭합니다.
  3. 설명을 입력한 다음 추가를 클릭합니다.
  4. 비밀 값을 복사합니다. 나중에 이 값이 필요하며 비밀 생성 후에만 액세스할 수 있습니다.

작업 영역에 Microsoft Entra ID 서비스 주체 추가

  1. Azure Databricks 작업 영역에서 오른쪽 위에 있는 사용자 이름을 클릭한 다음 설정 클릭합니다.
  2. ID 및 액세스 탭을 클릭합니다.
  3. 서비스 주체 옆에 있는 관리를 클릭합니다.
  4. 서비스 주체 추가를 클릭한 다음 클라이언트 ID를 클릭합니다.
  5. ApplicationId의 경우 이전에 복사한 애플리케이션(클라이언트) ID를 입력합니다.
  6. 표시 이름에 서비스 주체의 논리적 이름을 입력한 다음 추가를 클릭합니다.

dbt 프로젝트에 M2M 프로필 추가

  1. 이전에 복사한 애플리케이션(클라이언트) ID 및 클라이언트 비밀을 환경 변수로 설정합니다. Databricks는 비밀 profiles.yml 과 같은 중요한 정보를 직접 저장하는 것을 권장하지 않습니다.

    ~ export DATABRICKS_CLIENT_ID=<client-id>
    ~ export DATABRICKS_CLIENT_SECRET=<client-secret>
    
  2. dbt 프로젝트의 파일에 M2M 프로필을 profiles.yml 추가합니다.

    다음은 M2M 프로필 azure-oauth-m2m 이 지정된 예제 profiles.yml 파일입니다. azure-oauth-m2mtarget 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 웨어하우스에 액세스할 수 있도록 권한 부여

  1. 사이드바에서 SQL Warehouse를 클릭하고 SQL 웨어하우스를 클릭한 다음 사용 권한을 클릭합니다.
  2. 이 문서의 앞부분에서 만든 서비스 주체 옆에 있는 드롭다운 메뉴에서 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 앱 등록 만들기

  1. Azure Portal을 사용하여 Azure Databricks 계정 https://portal.azure.com/<tenant-id>의 Azure 테넌트에 로그인합니다.
  2. 앱 등록을 클릭합니다. 앱 등록 표시되지 않으면 추가 서비스를 클릭하고 필터 서비스 텍스트 상자를 사용하여 앱 등록 검색합니다.
  3. 새 등록을 클릭합니다.
  4. 앱의 이름을 입력합니다.
  5. 리디렉션 URI의 경우 드롭다운 메뉴에서 공용 클라이언트/네이티브(모바일 및 데스크톱)를 선택하고 입력http://localhost:8020합니다.
  6. 등록을 클릭합니다.
  7. 애플리케이션(클라이언트) ID 및 테넌트 ID복사합니다. 이러한 값은 나중에 필요합니다.

dbt 프로젝트에 U2M 프로필 추가

dbt 프로젝트의 파일에 U2M 프로필을 profiles.yml 추가합니다.

다음은 U2M 프로필 azure-oauth-u2m 이 지정된 예제 profiles.yml 파일입니다. azure-oauth-u2mtarget 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 애플리케이션 설정 확인

  1. dbt debug 명령을 실행하여 OAuth 애플리케이션이 올바르게 구성되었는지 확인합니다. 예시:

    dbt debug --target azure-oauth-u2m
    

    브라우저에서 요청된 사용 권한 페이지가 열립니다.

  2. 동의를 클릭합니다.

다음은 성공적인 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에 대한 커넥트 참조하세요.