Chronicle BigQuery Access API

Chronicle BigQuery Access API を使用して、BigQuery 内の Chronicle データへのセルフサービス アクセスをプログラムでユーザーに付与できます。

Chronicle API での認証方法

Chronicle API は、認証と認可に OAuth 2.0 プロトコルを使用します。作成するアプリケーションでは、次のいずれかを実装して認証と認可を行うことができます。

  • 使用するコンピュータ言語用の Google API クライアント ライブラリを利用する。

  • HTTP を使用して OAuth 2.0 システムと直接やり取りする。

Python の Google 認証ライブラリについては、リファレンス ドキュメントをご覧ください。

Google 認証ライブラリは Google API クライアント ライブラリのサブセットです。他の言語の実装をご覧ください。

API 認証情報の取得

API クライアントが API と通信できるようにするために、Chronicle の担当者から Google Developers サービス アカウント認証情報が提供されます。

また、API クライアントを初期化するときに認証スコープを指定する必要があります。OAuth 2.0 は、スコープを使用してアカウントに対するアプリケーションのアクセスを制限します。アプリケーションがスコープをリクエストした場合、そのアプリケーションに発行されたアクセス トークンは与えられたスコープに制限されます。

次のスコープを使用して Google API クライアントを初期化します。

https://www.googleapis.com/auth/chronicle-backstory

Python の例

次の Python の例は、google.oauth2googleapiclient を使用して OAuth2 認証情報と HTTP クライアントを使用する方法を示しています。

# Imports required for the sample - Google Auth and API Client Library Imports.
# Get these packages from https://pypi.org/project/google-api-python-client/ or run $ pip
# install google-api-python-client from your terminal
from google.oauth2 import service_account
from googleapiclient import _auth

SCOPES = ['https://www.googleapis.com/auth/chronicle-backstory']

# The apikeys-demo.json file contains the customer's OAuth 2 credentials.
# SERVICE_ACCOUNT_FILE is the full path to the apikeys-demo.json file
# ToDo: Replace this with the full path to your OAuth2 credentials
SERVICE_ACCOUNT_FILE = '/customer-keys/apikeys-demo.json'

# Create a credential using Google Developer Service Account Credential and Chronicle API
# Scope.
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)

# Build an HTTP client to make authorized OAuth requests.
http_client = _auth.authorized_http(credentials)

# <your code continues here>

Chronicle API のクエリの上限

Chronicle API では、お客様が Chronicle プラットフォームに対して実行できるリクエスト数に上限があります。クエリの上限に達した場合、または上限を超えた場合、Chronicle API サーバーは HTTP 429(RESOURCE_EXHAUSTED)を呼び出し元に返します。Chronicle API を使用してアプリケーションを開発する場合は、リソースの枯渇を避けるため、システム内でレート制限を適用します。これらの上限は、BigQuery Access API を含むすべての Chronicle API に適用されます。

BigQuery Access API では次の上限が適用されます。これらの上限は秒間クエリ数(QPS)で測定されます。

Chronicle API API エンドポイント 上限
BigQuery アクセス BigQuery アクセスの更新 4 QPS

BigQuery Access API リファレンス

このセクションでは、BigQuery Access API のエンドポイントについて説明します。

すべてのリクエストは、Chronicle API での認証方法で説明されているように、認証済みの Google API クライアント ライブラリを使用して行う必要があります。 すべてのレスポンスは JSON 形式で提供されます。

BigQuery アクセスの更新

Chronicle は、BigQuery の Chronicle データへのセルフサービス アクセスをサポートしています。Chronicle CLI を使用して、ユーザーのメールに対して次の権限を付与する Identity and Access Management(IAM)ロールを付与できます。

  • roles/bigquery.dataViewer
  • roles/bigquery.jobUser
  • roles/storage.objectViewer

メールアドレスは、Chronicle セキュリティのお客様の Google アカウントと ID 管理(WSGI)ユーザーのメールアドレスである必要があります。

これらのロールの詳細については、テーブルデータのエクスポートをご覧ください。

リクエスト

PATCH https://backstory.googleapis.com/v1/tools/bigqueryAccess:update
リクエストの本文
{
  "email": string
}
本文パラメータ
フィールド 必須 Description
メール 文字列 必須 ユーザーのメールアドレス。メールアドレスは、Chronicle のお客様の Google アカウントと ID 管理(WSGI)ユーザーのメールアドレスである必要があります。
リクエストの例
PATCH https://backstory.googleapis.com/v1/tools/bigqueryAccess:update
{
  "email": "alice@example.com"
}
レスポンスの例

これは、上記のリクエストの例に対して返されるレスポンスの例です。

{
  "email": "xyz@example.com",
  "roles": "bigquery.dataViewer, bigquery.jobUser, storage.objectViewer"
}