데이터 전송용 계정 승인

이 문서에서는 BigQuery Data Transfer Service가 다양한 계정 유형과 상호작용하는 방법, 일반적인 전송 태스크를 수행하는 데 필요한 계정 승인 유형, 일반적인 권한 오류에 대한 문제 해결 단계를 간략하게 설명합니다.

BigQuery Data Transfer Service를 사용하려면 프로젝트와 관련된 계정(사용자 계정 및 서비스 계정 모두)이 인증되어야 하고 전송에 필요한 권한을 올바르게 부여해야 합니다. 데이터 소스별 권한에 대한 자세한 내용은 각 데이터 소스의 전송 가이드를 참조하세요.

주요 개념

BigQuery Data Transfer Service는 다양한 데이터 소스에서 BigQuery로의 데이터 전송을 자동화합니다. 인증 및 승인 모델은 두 가지 유형(제어 영역 및 데이터 영역)에서 작동하며, 두 가지 유형의 사용자(전송 생성자 또는 전송 소유자)에 대해 작동합니다.

제어 영역

제어 영역은 인증된 사용자가 전송 구성과 실행을 제어하고 관리할 수 있는 승인 프로세스의 단계를 나타냅니다. 제어 영역의 사용자는 전송 구성 및 실행을 제어하고 관리할 수 있는 적절한 Identity and Access Management(IAM) 권한이 있어야 합니다.

  • 사용자가 다음을 수행할 수 있게 해주는 bigquery.transfers.update 권한
    • 데이터 전송 구성을 설정합니다.
    • 전송 업데이트, 사용 중지 또는 삭제와 같은 기존 전송을 관리합니다.
  • 전송 실행 상태 확인이나 전송 실행 기록 및 로그 보기와 같은 전송 실행을 모니터링할 수 있는 bigquery.transfers.get 권한입니다.

Google Cloud 콘솔 또는 bq 명령줄 도구를 사용하여 전송을 만드는 경우 bigquery.transfers.get 권한도 있어야 합니다.

예약된 쿼리를 설정하는 데 bigquery.transfers.update 권한은 필요하지 않습니다. 자세한 내용은 예약된 쿼리에 필요한 권한을 참조하세요.

데이터 영역

데이터 영역은 사용자의 직접 제어 외부에 있는 단계를 나타냅니다. 데이터 영역에서 BigQuery Data Transfer Service는 오프라인 모드에서 데이터 전송을 작동할 수 있으며 사용자가 지정한 일정에 따라 전송 실행을 자동으로 트리거할 수 있습니다. 데이터 영역에서 전송 소유자의 사용자 인증 정보는 소스 데이터에 액세스하는 데 사용되며, 데이터 소스에 따라 전송 소유자의 사용자 인증 정보 또는 BigQuery Data Transfer Service 서비스 에이전트가 BigQuery 작업을 시작하고 대상 데이터 세트에 데이터를 쓰는 데 사용됩니다.

필요한 권한에 대한 자세한 내용은 이 가이드의 다음 섹션을 참조하세요.

전송 작성자와 전송 소유자

전송 생성자는 전송 구성을 만들고 설정한 사용자 ID를 나타냅니다. BigQuery Data Transfer Service 사용자 및 전송 생성자는 사용자 계정 또는 서비스 계정일 수 있습니다.

전송 소유자는 BigQuery Data Transfer Service가 특히 소스 데이터 추출을 위해 데이터 전송을 승인하는 데 사용하는 사용자 ID를 참조합니다. 서비스 계정을 지원하는 데이터 소스의 경우 전송 소유자는 사용자 계정 또는 서비스 계정일 수 있습니다. 다른 데이터 소스의 경우 전송 소유자는 사용자 계정이어야 합니다.

전송 소유자와 전송 생성자는 동일한 사용자 ID를 가질 수 있지만 필수는 아닙니다. 전송 소유자를 전송 생성자와 다른 사용자로 설정하는 방법에는 여러 가지가 있습니다.

  • 전송을 만들 때 데이터 소스가 서비스 계정을 지원하는 경우 소유자를 서비스 계정으로 설정할 수 있습니다.
  • 전송을 만든 후 bigquery.transfers.update 권한이 있는 사용자는 사용자 인증 정보를 업데이트하여 전송 소유권을 자신의 계정(또는 데이터 소스가 서비스 계정을 지원하는 경우 서비스 계정)으로 변경할 수 있습니다.

외부 데이터 소스의 읽기 액세스 승인

소스 데이터를 읽는 데 필요한 권한은 데이터 소스마다 다를 수 있습니다. 예를 들어 Google Ads에 액세스하려면 Google Ads 고객 ID에 대한 읽기 액세스 권한이 필요합니다. 마찬가지로 Google Play의 경우 Google Play 콘솔에서 보고서 액세스가 필요합니다. 데이터 소스와 관련된 권한에 대한 자세한 내용은 각 데이터 소스의 전송 가이드를 참조하세요.

전송 소유자의 ID 유형에 따라 소스 데이터에 액세스하기 위해 액세스 토큰을 검색하는 데 다른 승인 방법이 필요합니다.

서비스 계정이 전송 소유자인 경우

서비스 계정이 전송 소유자로 사용되는 경우 BigQuery Data Transfer Service API가 프로젝트에 사용 설정되면 필요한 권한이 자동으로 부여됩니다. BigQuery Data Transfer Service는 Google 관리형 서비스 계정(서비스 에이전트라고도 함)을 사용하여 사용자가 제공한 서비스 계정(전송 소유자)의 액세스 토큰을 가져옵니다.

BigQuery Data Transfer Service API를 사용 설정하면 프로젝트에 대한 서비스 에이전트가 생성됩니다. 시스템은 iam.serviceAccounts.getAccessToken 권한을 포함하는 BigQuery Data Transfer Service 에이전트 역할(roles/bigquerydatatransfer.serviceAgent)도 서비스 에이전트에 부여합니다. 이 권한을 통해 BigQuery Data Transfer Service 서비스 에이전트는 전송 소유자 서비스 계정을 가장하여 액세스 토큰을 검색할 수 있습니다.

BigQuery Data Transfer Service 서비스 에이전트에 대한 자세한 내용은 서비스 에이전트를 참조하세요. 서비스 계정 사용 및 서비스 계정 지원이 포함된 데이터 소스의 최신 목록에 대한 자세한 내용은 서비스 계정 사용을 참조하세요.

사용자 계정이 전송 소유자인 경우

전송 구성을 만드는 전송 소유자가 서비스 계정이 아닌 사용자 계정인 경우 사용자 계정에 대한 액세스 토큰을 얻고 전송 소유자를 대신하여 소스 데이터에 액세스하려면 BigQuery Data Transfer Service에 대한 권한을 수동으로 부여해야 합니다. OAuth 대화상자 인터페이스를 사용하여 수동 승인을 부여할 수 있습니다.

지정된 데이터 소스에 대해 전송을 만들 때 처음으로 BigQuery Data Transfer Service에 대한 권한을 부여하면 됩니다. 새로 사용된 리전에 첫 번째 전송을 만들 때 동일한 데이터 소스를 사용하는 경우에도 권한을 다시 부여해야 합니다.

사용자 인증 정보를 업데이트하여 전송 소유자를 변경하려면 새 소유자가 이전에 해당 리전에서 데이터 소스에 대한 전송을 만들지 않은 경우 수동 승인이 필요합니다.

다음 스크린샷은 Google Ads 전송을 만들 때 OAuth 대화상자 인터페이스를 보여줍니다. 대화상자에는 데이터 소스별 권한이 표시됩니다.

BigQuery Data Transfer Service가 Google Ads에 액세스하도록 허용합니다.

주어진 권한을 취소하려면 다음 단계를 따르세요.

  1. Google 계정 페이지로 이동합니다.
  2. BigQuery Data Transfer Service를 클릭합니다.
  3. 권한을 취소하려면 액세스 권한 삭제를 클릭합니다. BigQuery Data Transfer Service에 부여한 액세스 권한을 삭제합니다.

BigQuery 작업 시작 승인

예약된 쿼리 또는 데이터 세트 사본을 사용하여 마이그레이션하는 경우를 제외하고 대부분의 데이터 소스에서 마이그레이션하는 경우 BigQuery Data Transfer Service는 Google 관리 서비스 계정을 사용하여 프로젝트의 BigQuery 작업을 시작합니다. 프로젝트에 BigQuery Data Transfer Service API를 사용 설정하면 필수 권한 bigquery.job.create서비스 에이전트에 자동으로 부여됩니다. 자세한 내용은 BigQuery Data Transfer Service 사용 설정을 참조하세요.

예약된 쿼리 또는 데이터 세트 사본을 사용하여 마이그레이션하는 경우 BigQuery Data Transfer Service는 전송 소유자의 사용자 인증 정보를 사용하여 BigQuery 작업을 시작합니다.

BigQuery 작업 실행 및 대상 데이터 세트에 데이터 쓰기 승인

예약된 쿼리 또는 데이터 세트 사본을 사용하여 마이그레이션하는 경우를 제외하고 대부분의 데이터 소스에서 마이그레이션하는 경우 BigQuery Data Transfer Service는 서비스 에이전트를 사용하여 BigQuery 대상 데이터 세트에 데이터를 씁니다. 필요한 권한인 roles/bigquery.dataEditor는 전송을 만들 때 BigQuery Data Transfer Service에 의해 서비스 에이전트에 부여됩니다. 권한을 성공적으로 부여하려면 대상 데이터 세트에 대한 bigquery.datasets.update 권한이 있어야 합니다.

예약된 쿼리 또는 데이터 세트 사본을 사용하여 마이그레이션하는 경우 BigQuery Data Transfer Service는 전송 소유자의 사용자 인증 정보를 사용하여 BigQuery 작업을 실행하고 BigQuery 대상 데이터 세트에 데이터를 씁니다.

권한 오류 문제 해결

전송 시 승인 또는 권한 관련 문제가 발생하는 경우 승인 및 권한 문제를 참조하세요.