Google Cloud と BigQuery は初めてです。関連していると思われる他の多数の質問を確認しましたが、それらの回答に何が欠けているかはわかりませんでした。公開データセットにクエリを実行しようとしています。
エラー:
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Access Denied: Project airy-advantage-235802: The user kafka-learning@airy-advantage-235802.iam.gserviceaccount.com does not have bigquery.jobs.create permission in project airy-advantage-235802.",
"reason" : "accessDenied"
} ],
"message" : "Access Denied: Project airy-advantage-235802: The user kafka-learning@airy-advantage-235802.iam.gserviceaccount.com does not have bigquery.jobs.create permission in project airy-advantage-235802."
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:150)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:401)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1132)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:499)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:432)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:549)
at com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc.create(HttpBigQueryRpc.java:183)
私がやったこと:
- 新しい Google Cloud アカウントを作成しました
- Google がプロジェクト ID airy-advantage-235802 を割り当てた新しいプロジェクトを作成しました。プロジェクト名は Kafka Learning です。
- サービス アカウント kafka-learning@airy-advantage-235802.iam.gserviceaccount.com を作成しました
- そのユーザーにプロジェクト内の BigQuery 管理者の役割を付与します (最初に BigQuery ユーザーと BigQuery データ閲覧者を試しました)
- JSON 資格情報ファイルをローカル フォルダーに保存しました
- 環境変数
GOOGLE_APPLICATION_CREDENTIALS
を JSON ファイルへのパスに設定します - 公開データセットをクエリするための小さな Java プロジェクトがあります
- 上記のエラーを受け取りました
- 確認済みの課金が有効になっています (私が知る限り、以下を参照してください)
見逃したステップはありますか?
var bigquery = BigQueryOptions.getDefaultInstance().getService();
var query = "SELECT * FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801` LIMIT 10";
var queryConfig = QueryJobConfiguration.newBuilder(query).build();
var table = bigquery.query(queryConfig);
また、ビルダーを次のように変更して、プロジェクト ID (json ファイルにもあります) を明示的に設定しようとしました。
var bigquery = BigQueryOptions.newBuilder().setProjectId("airy-advantage-235802").build().getService();