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.oauth2
と googleapiclient
を使用して 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"
}