サービス アカウント キーファイルを使用した認証

オンプレミスや他のパブリック クラウドにアプリケーションをデプロイするときに、BigQuery を使用するためのサービス アカウント認証情報を手動で作成して取得します。アプリケーションのデフォルト認証情報を使用して認証情報を読み込むように環境変数を設定することも、認証情報を手動で読み込むためのパスをアプリケーション コードで指定することもできます。

このガイドでは、ファイルから認証情報を読み込む方法について説明します。

始める前に

ファイルからの認証情報の読み込み

アプリケーション内でサービス アカウント ファイルから認証情報を作成します。次に、認証情報を使用して、BigQuery クライアント ライブラリを含むサービス オブジェクトを作成します。

C#

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の C# の設定手順を実施してください。詳細については、BigQuery C# API のリファレンス ドキュメントをご覧ください。

GoogleCredential.FromStream(Stream) を使用して、JSON ファイルから認証情報を読み込みます。GoogleCredential を作成して BigQueryClient.Create(String, GoogleCredential) に渡し、BigQuery サービス オブジェクトを作成します。

var credentials = GoogleCredential.FromFile(jsonPath);
var client = BigQueryClient.Create(projectId, credentials);

Java

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

ServiceAccountCredentials.fromStream(InputStream) を使用して、ファイルから ServiceAccountCredentials オブジェクトを作成します。認証情報を BigQueryOptions.Builder に渡して、それらのオプションから BigQuery サービスを作成します。

public static void explicit() throws IOException {
  // TODO(developer): Replace these variables before running the sample.
  String projectId = "MY_PROJECT_ID";
  File credentialsPath = new File("path/to/your/service_account.json");

  // Load credentials from JSON key file. If you can't set the GOOGLE_APPLICATION_CREDENTIALS
  // environment variable, you can explicitly load the credentials file to construct the
  // credentials.
  GoogleCredentials credentials;
  try (FileInputStream serviceAccountStream = new FileInputStream(credentialsPath)) {
    credentials = ServiceAccountCredentials.fromStream(serviceAccountStream);
  }

  // Instantiate a client.
  BigQuery bigquery =
      BigQueryOptions.newBuilder()
          .setCredentials(credentials)
          .setProjectId(projectId)
          .build()
          .getService();

  // Use the client.
  System.out.println("Datasets:");
  for (Dataset dataset : bigquery.listDatasets().iterateAll()) {
    System.out.printf("%s%n", dataset.getDatasetId().getDataset());
  }
}

Node.js

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。

// Create a BigQuery client explicitly using service account credentials.
// by specifying the private key file.
const {BigQuery} = require('@google-cloud/bigquery');

const options = {
  keyFilename: 'path/to/service_account.json',
  projectId: 'my_project',
};

const bigquery = new BigQuery(options);

Python

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Python の手順に従って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

google.oauth2.service_account.Credentials.from_service_account_file を使用して、サービス アカウント キーファイルによる認証を行います。認証情報を使用して BigQuery クライアントを作成します。

from google.cloud import bigquery
from google.oauth2 import service_account

# TODO(developer): Set key_path to the path to the service account key
#                  file.
# key_path = "path/to/service_account.json"

credentials = service_account.Credentials.from_service_account_file(
    key_path, scopes=["https://www.googleapis.com/auth/cloud-platform"],
)

client = bigquery.Client(credentials=credentials, project=credentials.project_id,)

次のステップ