직원 ID 제휴 및 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 또는 웹에 대한 안내를 제공합니다.

시작하기 전에

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

  2. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

    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는 입력한 이름에서 자동으로 파생됩니다.

    2. 선택사항: ID를 업데이트하려면 수정을 클릭합니다.

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

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

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

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

gcloud

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

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

다음을 바꿉니다.

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

새 Microsoft Entra 앱 등록

이 섹션에서는 Microsoft Azure 포털을 사용하여 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에서 전달된 사용자의 그룹 클레임을 필터링합니다. 기본적으로 사용자와 연결된 모든 그룹을 가져옵니다. 사용되는 그룹은 메일 및 보안을 사용 설정해야 합니다. 자세한 내용은 $search 쿼리 매개변수 사용을 참조하세요. 최대 100개의 그룹을 가져올 수 있습니다.

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

    --extra-attributes-filter='"mail:gcp"'
    다음 예시는 이메일 주소가 gcp로 시작하고 example이 포함된 displayName을 가지는 사용자와 연결된 그룹을 필터링합니다.
    --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(Azure AD)(베타)를 선택합니다.
  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. 전원 쿼리를 클릭하여 새 데이터 소스를 추가합니다.

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

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

  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의 데이터를 사용할 수 있습니다.

다음 단계