2013-11-20 5 views
0

내가 GCS 버킷에서의 BigQuery에 데이터를로드 할 bq 명령 줄 도구를 사용하려고 할 때 다음과 같은 오류 메시지가 나타납니다 :BigQuery를 승인

BigQuery error in load operation: Access Denied: Job mythical-maxim-293:bqjob_r11765e0cd9ceb52b_000001427694f0e1_1: RUN_JOB

나는 (개인 키) 서비스 계정을 사용했다 인증을 위해.

https://developers.google.com/bigquery/loading-data-into-bigquery https://developers.google.com/bigquery/access-control

서비스 계정 이메일이 BigQuery에 데이터 세트와 쓰기 액세스 권한을 부여하고, GCS 버킷에 액세스를 읽어했다 : 나는 서비스 계정 액세스 레벨을 부여하는 다음 링크를 따라 갔다.

참고 : 서비스 계정 이메일을 프로젝트에 작성자로 추가하면 문제가 해결되지만 내 경우에는 가능하지 않습니다. 프로젝트 수준의 쓰기 권한을 요청할 수는 없지만 BigQuery 및 GCS (읽기 전용)는 요청할 수 없습니다.

감사합니다.

+0

실행하려고했던 정확한 명령을 복사하여 붙여 넣을 수 있습니까? – vegemite4me

+0

BQ \ --service_account [email protected]account.com \ --service_account_credential_file ~/.bigquery/identity.xplenty.cred \ --service_account_private_key_file ~/.bigquery/identity.xplenty.p12 \ - service_account_private_key_password notasecret \ --project_id mythical-maxim-293 \ load my_data_set_1.my_table_1 gs : //xptest/test.csv –

+0

서비스 계정에 양동이의 개체에 대한 읽기 권한을 부여 했습니까? 버켓 읽기 권한은 반드시 객체 읽기 권한을 의미하지는 않습니다. –

답변

2

작업을 실행하려면 서비스 계정에 프로젝트에 대한 읽기 권한 이상을 부여해야합니다. 이는 프로젝트에서 일하는 사람이 프로젝트 소유자에게 돈이 드는 일 (예 : 쿼리 실행)을 할 수 있기 때문입니다.

서비스 계정을 프로젝트에 추가하려면 https://cloud.google.com/console으로 이동 한 다음 "권한"을 클릭 한 다음 "구성원 추가"를 클릭하십시오.

+0

프로젝트에 대한 읽기 권한을 부여한 이후로 문제가있는 접근법처럼 보입니다. 특정 서비스로만 제한 될 수 있습니다 (내 서비스 계정이 BigQuery로드에만 사용되는 경우 어떻게해야합니까?). 내가 놓친 게 있니? 내 서비스 계정 BigQuery에 읽기 권한이있는 다른 Google 클라우드 서비스에 노출하지 않고로드 할 수있는 방법이 필요합니다. –

+0

아, 또 다른 질문 - 다른 인증 방법 (예 : OAuth2 Web Flow)을 사용하면 다른 것입니까? –

+0

OAuth2를 사용하는 경우 프로세스가 동일하지만 OAuth 범위를 제한하여 BigQuery에 대한 액세스 만 허용 할 수 있습니다. –

0

데이터 세트에 대한 쓰기 권한을 제공해야합니다. 쓰기 권한이 읽기 권한이 있다는 의미로

https://cloud.google.com/bigquery/loading-data-into-bigquery#access

이 나쁜 것입니다. 그러나 bigquery READ는 지불되고 Load는 무료입니다. 무료 업무를 수행하려면 유료 서비스에 대한 액세스가 필요합니다.

Google은이를 수정해야합니다.

관련 문제