Workforce Identity Federation 및 Microsoft Entra로 Power BI에서 BigQuery 데이터에 액세스

이 가이드에서는 Microsoft Entra 그룹에 속한 사용자가 직원 ID 제휴를 사용하여 Power BI에서 BigQuery 데이터에 액세스할 수 있게 하는 방법을 보여줍니다.

Microsoft Entra는 ID 공급업체(IdP)입니다. Microsoft Entra의 그룹 클레임은 Google Cloud에 매핑됩니다. 그룹에는 BigQuery 데이터에 액세스할 수 있는 Identity and Access Management(IAM) 권한이 부여됩니다.

이 가이드에서는 Power BI Desktop 또는 Web에 대한 안내를 제공합니다.

시작하기 전에

  1. Google Cloud 조직을 설정해야 합니다.

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  3. Microsoft Entra 및 Microsoft Graph에 대한 액세스 권한이 있어야 합니다.

  4. Power BI가 설정되어 있어야 합니다.

필요한 역할

이 섹션에서는 관리자와 리소스에 필요한 역할을 설명합니다.

관리자 역할

직원 ID 제휴를 구성하는 데 필요한 권한을 얻으려면 관리자에게 조직에 대한 IAM 직원 풀 관리자(roles/iam.workforcePoolAdmin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

또는 IAM 소유자(roles/owner) 기본 역할에는 ID 제휴를 구성하는 권한도 포함됩니다. 프로덕션 환경에서는 기본 역할을 부여하지 말아야 하지만 개발 환경 또는 테스트 환경에서는 부여해도 됩니다.

제휴 ID에 대한 역할

Power BI는 토큰 교환 중에 userProject 파라미터를 전송합니다. 따라서 관리자에게 제휴 ID에게 결제 프로젝트에 대한 서비스 사용량 소비자(roles/serviceusage.serviceUsageConsumer) 역할을 부여해 달라고 요청해야 합니다.

제휴 ID 그룹에 역할을 부여하려면 다음 명령어를 실행합니다.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="roles/serviceusage.serviceUsageConsumer" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

다음을 바꿉니다.

  • PROJECT_ID: 결제 프로젝트 ID
  • WORKFORCE_POOL_ID: 직원 ID 풀 ID
  • GROUP_ID: 그룹 ID(예: admin-group@example.com). 일반 주 구성원 식별자 목록을 보려면 주 구성원 식별자를 참조하세요.

직원 ID 풀 만들기

이 섹션에서는 직원 ID 풀을 만드는 방법을 설명합니다. 이 가이드 뒷부분에서 직원 ID 풀 제공업체를 만듭니다.

콘솔

직원 ID 풀을 만들려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 직원 ID 풀 페이지로 이동합니다.

    직원 ID 풀로 이동

  2. 풀 만들기를 클릭하고 다음을 수행합니다.

    1. 이름 필드에 풀의 표시 이름을 입력합니다. 풀 ID는 자동으로 입력한 이름에서 파생되며 이름 필드 아래에 표시됩니다. 풀 ID 옆에 있는 수정을 클릭하여 풀 ID를 업데이트할 수 있습니다.

    2. (선택사항) 설명에 풀 설명을 입력합니다.

    3. 세션 시간은 기본값으로 설정됩니다. 사용자설정 세션 시간을 입력하려면 수정을 클릭합니다. 세션 시간은 이 직원 풀에서 유래한 Google Cloud 액세스 토큰, 콘솔(제휴) 로그인 세션, gcloud CLI 로그인 세션이 유효하게 지속되는 시간을 결정합니다. 기간은 15분(900초) 이상, 12시간(43,200초) 미만이어야 합니다. 세션 시간을 설정하지 않은 경우 기본값은 1시간(3,600초)입니다.

    4. 사용 설정 상태의 풀을 만들려면 사용 설정된 풀을 사용 설정합니다.

    5. 직원 ID 풀을 만들려면 다음을 클릭합니다.

gcloud

직원 ID 풀을 만들려면 다음 명령어를 실행합니다.

gcloud iam workforce-pools create WORKFORCE_POOL_ID \
    --organization=ORGANIZATION_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --session-duration=SESSION_DURATION \
    --location=global

다음을 바꿉니다.

  • WORKFORCE_POOL_ID: Google Cloud 직원 풀을 나타내기 위해 선택하는 ID. ID 형식 지정에 대한 자세한 내용은 API 참고 리소스의 쿼리 매개변수 섹션을 참조하세요.
  • ORGANIZATION_ID: Google Cloud 조직의 숫자 조직 ID입니다.
  • DISPLAY_NAME: 선택사항. 직원 ID 풀 표시 이름입니다.
  • DESCRIPTION: 선택사항. 직원 ID 풀 설명입니다.
  • SESSION_DURATION: 선택사항. 세션 시간으로, 이 직원 풀의 Google Cloud 액세스 토큰, 콘솔(제휴) 로그인 세션, gcloud CLI 로그인 세션이 유효하게 지속되는 시간을 결정합니다. 기간은 15분(900초) 이상, 12시간(43,200초) 미만이어야 합니다. 세션 시간을 설정하지 않은 경우 기본값은 1시간(3,600초)입니다.

새 Microsoft Entra 앱 등록

이 섹션에서는 Microsoft Azure Portal을 사용하여 Microsoft Entra 앱을 만드는 방법을 보여줍니다.

  1. 새 Microsoft Entra 애플리케이션을 등록합니다.

  2. 등록한 Microsoft Entra 애플리케이션에서 새 클라이언트 보안 비밀번호를 만듭니다. 클라이언트 보안 비밀번호를 확인합니다.

  3. Active Directory에서 사용자 및 그룹 정보에 액세스할 수 있도록 Microsoft Entra 애플리케이션에 API 권한을 부여합니다. Microsoft Graph API에 대한 권한을 부여하려면 다음을 수행합니다.

    1. 애플리케이션에서 API 권한을 선택합니다.
    2. 구성된 권한에서 권한 추가를 클릭합니다.
    3. API 권한 요청 대화상자에서 Microsoft Graph를 선택합니다.
    4. 애플리케이션 권한을 선택합니다.
    5. 권한 선택 대화상자에서 다음을 수행합니다.
      1. 검색 필드에 User.ReadBasic.All을 입력합니다.
      2. User.ReadBasic.All을 클릭합니다.
      3. 권한 추가를 클릭합니다.
    6. API 권한 요청 대화상자에서 Microsoft Graph를 선택합니다.
    7. 애플리케이션 권한을 선택합니다.
    8. 권한 선택 대화상자에서 다음을 수행합니다.
      1. 검색 필드에 GroupMember.Read.All을 입력합니다.
      2. GroupMember.Read.All을 클릭합니다.
      3. 권한 추가를 클릭합니다.
    9. 구성된 권한에서 (도메인 이름)에 대해 관리자 동의 부여를 클릭합니다.
    10. 확인 메시지가 표시되면 를 클릭합니다.
  4. 이 가이드의 뒷부분에서 직원 풀 제공업체를 구성하는 데 필요한 값에 액세스하려면 다음을 수행합니다.

    1. Microsoft Entra 애플리케이션의 개요 페이지로 이동합니다.
    2. 엔드포인트를 클릭합니다.
    3. 다음 값을 확인합니다.

      • 클라이언트 ID: 이 가이드의 앞부분에서 등록한 Microsoft Entra 앱의 ID입니다.
      • 클라이언트 보안 비밀번호: 이 가이드의 앞부분에서 생성한 클라이언트 보안 비밀번호입니다.
      • 테넌트 ID: 이 가이드의 앞부분에서 등록한 Microsoft Entra 앱의 테넌트 ID입니다.
      • 발급기관 URI: OpenID Connect 메타데이터 문서 URI입니다(/.well-known/openid-configuration 생략). 예를 들어 OpenID Connect 메타데이터 문서 URL이 https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration이면 발급기관 URI는 https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/입니다.

직원 ID 풀 공급업체 만들기

공급업체를 만들려면 다음 명령어를 실행합니다.

gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location=global \
    --display-name=DISPLAY_NAME \
    --issuer-uri=ISSUER_URI \
    --client-id=https://analysis.windows.net/powerbi/connector/GoogleBigQuery \
    --attribute-mapping=ATTRIBUTE_MAPPING \
    --web-sso-response-type=id-token \
    --web-sso-assertion-claims-behavior=only-id-token-claims \
    --extra-attributes-issuer-uri=APP_ISSUER_URI \
    --extra-attributes-client-id=APP_CLIENT_ID \
    --extra-attributes-client-secret-value=APP_CLIENT_SECRET \
    --extra-attributes-type=azure-ad-groups-mail \
    --extra-attributes-filter=FILTER

다음을 바꿉니다.

  • PROVIDER_ID: 고유한 공급업체 ID. gcp- 프리픽스는 예약되어 있으며 제공업체 ID에 사용될 수 없습니다.
  • WORKFORCE_POOL_ID: IdP를 연결할 직원 ID 풀 ID
  • DISPLAY_NAME: 공급업체의 사용자 친화적인 표시 이름(선택사항)
  • ISSUER_URI: https://sts.windows.net/TENANT_ID 형식의 발급기관 URI 값. TENANT_ID를 앞에서 기록한 테넌트 ID로 바꿉니다.
  • ATTRIBUTE_MAPPING: Google Cloud 속성에 대한 그룹 및 Microsoft Entra의 다른 속성(선택사항)의 매핑(예: google.groups=assertion.groups, google.subject=assertion.sub). 이 가이드의 뒷부분에서 BigQuery 데이터에 대한 액세스 권한이 그룹에 부여됩니다.
  • APP_ISSUER_URI: 앞부분에서 확인한 Microsoft Entra 애플리케이션의 발급기관 URI입니다.
  • APP_CLIENT_ID: 앞에서 기록한 발급기관 클라이언트 ID
  • APP_CLIENT_SECRET: 앞에서 기록한 발급기관 클라이언트 보안 비밀번호
  • FILTER: IdP에서 전달된 특정 어설션을 요청하는 데 사용되는 필터. --extra-attributes-type=azure-ad-groups-mail을 지정하면 --extra-attributes-filter는 IdP에서 전달된 사용자의 그룹 클레임을 필터링합니다. 기본적으로 사용자와 연결된 모든 그룹을 가져옵니다. 사용되는 그룹에는 메일과 보안이 사용 설정되어야 합니다. 자세한 내용은 검색어 파라미터 사용을 참조하세요. 그룹을 최대 100개까지 가져올 수 있습니다.

    다음 예시는 gcp로 시작하는 사용자 이메일 주소와 연결된 그룹을 필터링합니다.

    --extra-attributes-filter='"mail:gcp"'
    다음 예시는 이메일 주소가 gcp로 시작하고 displayNameexample이 포함된 사용자와 연결된 그룹을 필터링합니다.
    --extra-attributes-filter='"mail:gcp" AND "displayName:example"'

IAM 정책 만들기

이 섹션에서는 BigQuery 데이터가 저장된 프로젝트의 매핑된 그룹에 BigQuery 데이터 뷰어(roles/bigquery.dataViewer) 역할을 부여하는 IAM 허용 정책을 만듭니다. 이 정책을 사용하면 그룹에 있는 모든 ID가 프로젝트에 저장된 BigQuery 테이블과 뷰의 데이터를 볼 수 있습니다.

정책을 만들려면 다음 명령어를 실행합니다.

gcloud projects add-iam-policy-binding BIGQUERY_PROJECT_ID \
    --role="roles/bigquery.dataViewer" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

다음을 바꿉니다.

  • BIGQUERY_PROJECT_ID: BigQuery 데이터와 메타데이터가 저장된 프로젝트 ID
  • WORKFORCE_POOL_ID: 직원 ID 풀 ID
  • GROUP_ID: 그룹(예: admin-group@example.com)

Power BI Desktop에서 BigQuery 데이터에 액세스

Power BI Desktop에서 BigQuery 데이터에 액세스하려면 다음을 수행합니다.

  1. Power BI를 엽니다.
  2. 데이터 가져오기를 클릭합니다.
  3. 데이터베이스를 클릭합니다.
  4. 데이터베이스 목록에서 Google BigQuery(Microsoft Entra ID)(베타)를 선택합니다.
  5. 연결을 클릭합니다.
  6. 다음 필수 필드를 입력합니다.

    • 결제 프로젝트 ID: 결제 프로젝트 ID
    • 대상 URI: 다음 형식의 Google Cloud URI

      //iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
      

      다음을 바꿉니다.

      • WORKFORCE_POOL_ID: 직원 ID 풀 ID

      • PROVIDER_ID: 직원 ID 풀 제공업체 ID

  7. 확인을 클릭합니다.

  8. 다음을 클릭합니다.

  9. 데이터 선택을 클릭합니다.

로그인하라는 메시지가 표시되면 그룹 구성원인 Microsoft Entra ID를 사용합니다.

이제 Power BI Desktop에서 BigQuery의 데이터를 사용할 수 있습니다.

Power BI Web에서 BigQuery 데이터에 액세스

Power BI Web에서 BigQuery 데이터에 액세스하려면 다음을 수행합니다.

  1. Power BI Web으로 이동합니다.

  2. Power Query를 클릭하여 새 데이터 소스를 추가합니다.

  3. 데이터 가져오기를 클릭합니다.

  4. 목록에서 Google BigQuery(Microsoft Entra ID)(베타)를 찾아 선택합니다.

  5. 다음 필수 필드를 입력합니다.

    • 결제 프로젝트 ID: Google Cloud 결제 프로젝트

    • 대상 URI: 다음 형식의 대상 URI

      //iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
      

      다음을 바꿉니다.

      • WORKFORCE_POOL_ID: 직원 ID 풀 ID

      • PROVIDER_ID: 직원 ID 풀 제공업체 ID

  6. 연결 사용자 인증 정보 > 인증 종류를 클릭합니다.

  7. 조직 계정을 선택합니다.

  8. 로그인을 클릭합니다.

  9. 다음을 클릭합니다.

  10. 데이터 선택을 클릭합니다.

이제 Power BI Web에서 BigQuery의 데이터를 사용할 수 있습니다.

다음 단계