監査ロギング

このページでは、Cloud 監査ログの一部として Cloud Search によって作成される監査ログについて説明します。

概要

Google Cloud サービスは、リソース内で「誰が、いつ、どこで、何をしたか」を調べるのに役立つ監査ログを書き込みます。Cloud プロジェクトで記録される監査ログは、そのプロジェクト内に直接存在するリソースに関するもののみです。フォルダ、組織、Cloud 請求先アカウントなどの他のエンティティには、それぞれ独自の監査ログが記録されます。

概要については、Cloud Audit Logs をご覧ください。詳細については、監査ログについてをご覧ください。

Cloud Audit Logs では、Cloud プロジェクト、フォルダ、組織ごとに次のログが保存されます。

  • 管理アクティビティ監査ログ: 管理書き込みオペレーションを実行するメソッドのエントリ。
  • データアクセス監査ログ: 管理読み取り、データ書き込み、データ読み取りオペレーションを実行するメソッドのエントリ。
  • システム イベント監査ログ
  • ポリシー拒否監査ログ

Cloud Search は、リソースの構成やメタデータを変更するオペレーションを記録するために、管理アクティビティ監査ログを書き込みます。管理アクティビティ監査ログは無効にできません。

Cloud Search は、明示的に有効にした場合にのみ、データアクセス監査ログを書き込みます。これらのログには、リソースの構成やメタデータを読み取る API 呼び出しと、ユーザー提供のリソースデータの作成、変更、読み取りを行うユーザー主導の API 呼び出しが含まれます。

Cloud Search では、システム イベント監査ログまたはポリシー拒否監査ログは記録されません。

監査対象のオペレーション

次の表は、Cloud Search の監査ログの各タイプに対応する API オペレーションをまとめたものです。

監査ログのカテゴリ Cloud Search のオペレーション
管理アクティビティ: 管理書き込み indexing.datasources.updateSchema
indexing.datasources.deleteSchema
settings.datasources.create
settings.datasources.delete
settings.datasources.update
settings.searchapplications.create
settings.searchapplications.delete
settings.searchapplications.reset
settings.searchapplications.update
settings.updateCustomer
cloudsearch.IdentitySourceService.create
cloudsearch.IdentitySourceService.update
cloudsearch.IdentitySourceService.delete
データアクセス: 管理者読み取り indexing.datasources.getSchema
settings.datasources.get
settings.datasources.list
settings.searchapplications.get
settings.searchapplications.list
settings.getCustomer
cloudsearch.IdentitySourceService.get
cloudsearch.IdentitySourceService.list
データアクセス: データの書き込み indexing.datasources.items.delete
indexing.datasources.items.deleteQueueItems
indexing.datasources.items.index
indexing.datasources.items.poll
indexing.datasources.items.push
indexing.datasources.items.unreserve
indexing.datasources.items.upload
media.upload
データアクセス: データの読み取り indexing.datasources.items.get
indexing.datasources.items.list
operations.get
operations.list
debug.datasources.items.checkAccess
debug.datasources.items.searchByViewUrl
stats.getIndex
stats.getQuery
stats.getSession
stats.getUser
stats.index.datasources.get
stats.query.searchapplications.get
stats.session.searchapplications.get
stats.user.search applications.get
debug.identitysources.items.listForunmappedidentity
debug.identitysources.unmappedids.list
debug.datasources.items.unmappedids.list
query.sources.list
query.suggest
query.search
stats.getSearchapplication

監査ログ形式

監査ログエントリには、次のオブジェクトが含まれます。ログ エクスプローラ、Cloud Logging API、または gcloud コマンドライン ツールを使用して、Cloud Logging で表示できます。

ログエントリ自体は LogEntry オブジェクトです。よく使用されるフィールドは次のとおりです。

  • logName: リソース ID と監査ログのタイプ。
  • resource: 監査対象オペレーションのターゲット。
  • timeStamp: 監査対象オペレーションの時刻。
  • protoPayload: 監査情報。

監査ロギングデータは、protoPayload フィールドの AuditLog オブジェクトです。

サービス固有の監査情報(省略可)は、サービス固有のオブジェクトです。以前のインテグレーションでは、このオブジェクトは AuditLog オブジェクトの serviceData フィールドにあります。後のインテグレーションでは、metadata フィールドを使用します。

詳細については、監査ログについてをご覧ください。

ログ名

Cloud Audit Logs のリソース名は、ログを所有するプロジェクトまたは他の Google Cloud エンティティと、監査ログのタイプを示します。次に例を示します。

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

サービス名

Cloud Search 監査ログでは、サービス名 cloudsearch.googleapis.com が使用されます。

リソースタイプ

Cloud Search 監査ログは、すべてのログにリソースタイプ audited_resource を使用します。他のリソースタイプについては、モニタリング対象リソースタイプをご覧ください。

監査ロギングの有効化

デフォルトでは、Cloud Search API の監査ロギングは無効になっています。Cloud Search の監査ロギングを有効にするには:

  1. (省略可)ログを保存する Google Cloud プロジェクトを作成していない場合は、Cloud Search API へのアクセスを構成するをご覧ください。
  2. ログを保存する Google Cloud プロジェクトのプロジェクト ID を取得します。プロジェクトの識別をご覧ください。
  3. 特定の API で有効にするログカテゴリを特定します。監査対象のオペレーションをご覧ください。
  4. updateCustomer() REST API メソッドを使用して、カテゴリで auditLogSettings を更新します。

    1. OAuth 2.0 アクセス トークンを取得します。OAuth 2.0 を使用して Google API にアクセスするをご覧ください。次のいずれかのスコープを使用します。
      • https://www.googleapis.com/auth/cloud_search.settings.indexing
      • https://www.googleapis.com/auth/cloud_search.settings
      • https://www.googleapis.com/auth/cloud_search
    2. 次の curl コマンドを実行します。 bash curl --request PATCH \ 'https://cloudsearch.googleapis.com/v1/settings/customer?updateMask=auditLoggingSettings&key=[YOUR_API_KEY]' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Content-Type: application/json' \ --data '{"auditLoggingSettings": { "project": "projects/PROJECT_ID", "CATEGORY1": "true", "CATEGORY2": "true" } }' YOUR_ACCESS_TOKENPROJECT_ID、カテゴリ(logAdminReadActionslogDataWriteActionslogDataReadActions)を置き換えます。管理者の書き込みアクションはデフォルトで有効になっています。クエリ メソッドをログに記録するには、データ読み取りカテゴリを有効にします。

      Cloud Search API への後続のリクエストは、指定されたプロジェクトにログを生成します。

  5. クエリ メソッドの監査ロギングには、データ読み取りカテゴリが必要です。query.sources.listquery.suggestquery.search のロギングを有効にするには:

    1. 各検索アプリケーションの名前を searchapplications/<search_application_id> 形式で取得します。
    2. enableAuditLogtrue に設定して settings.searchapplications.update を呼び出します。
  6. cloudsearch.google.com からの呼び出しの監査ロギングを有効にするには、データ読み取りカテゴリが有効になっていることを確認し、searchapplications/default を更新します。

Google Cloud コンソールのログ エクスプローラでログを表示します。Cloud Search の監査ログには、次のフィルタを使用します。

protoPayload.serviceName="cloudsearch.googleapis.com"

詳細については、ログ エクスプローラの概要をご覧ください。

監査ログに関する権限

表示またはエクスポートできるログは、Identity and Access Management(IAM)の権限によって決まります。詳しくは、役割についてをご覧ください。

管理アクティビティ監査ログを表示するには、次のいずれかの IAM ロールが必要です。

データアクセス監査ログを表示するには、次のいずれかのロールが必要です。

組織などのプロジェクト以外のエンティティからの監査ログを使用する場合は、Cloud プロジェクト ロールを適切な組織ロールに変更します。

ログを表示

ログを表示するには、Cloud プロジェクト、フォルダ、または組織の識別子が必要です。resource.type などの他の LogEntry フィールドを指定できます。ログ エクスプローラでクエリを作成するをご覧ください。

監査ログ名の形式は次のとおりです。

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

監査ログエントリを表示する方法はいくつかあります。

Console

  1. Google Cloud コンソールの [ロギング] > [ログ エクスプローラ] ページに移動します。[ログ エクスプローラ] に移動
  2. プロジェクトを選択します。
  3. [クエリビルダー] ペインで、リソースとログタイプを選択します。新しいログ エクスプローラを使用したクエリの詳細については、ログ エクスプローラでクエリを作成するをご覧ください。

gcloud

プロジェクト レベルのログに対して次のコマンドを実行します。

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" 
--project=PROJECT_ID

API

  1. entries.list メソッドの [この API を試す] セクションに移動します。
  2. このリクエスト本文を使用します。PROJECT_ID は、選択したプロジェクト ID に置き換えます。
    {
    "resourceNames": ["projects/PROJECT_ID"],
    "pageSize": 5,
    "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
  3. [実行] をクリックします。

クエリの詳細については、ロギングクエリ言語をご覧ください。

監査ログエントリのサンプルと、その中にある特に重要な情報を見つける方法については、監査ログについてをご覧ください。

監査ログをエクスポートする

監査ログは、他のログと同様にエクスポートできます。ログをエクスポートするをご覧ください。

  • Cloud Storage、BigQuery、Pub/Sub にエクスポートして、保持期間を延長したり、高度な検索を行ったりします。
  • 集約シンクを使用して、組織全体のログを管理します。
  • データアクセス ログを除外して、ログ割り当てを管理します。ログの除外をご覧ください。

料金と継続率

Cloud Logging では、管理アクティビティ監査ログは無料です。Cloud Logging では、データアクセス監査ログに対して課金されます。Google Cloud のオペレーション スイートの料金をご覧ください。

Cloud Search 監査ログの保持期間:

  • 管理アクティビティ ログ: 400 日間。
  • データアクセス ログ: 30 日間。

現在の制限事項

Cloud Search の監査ロギングの制限事項:

  • ログエントリのサイズは 512 KB 未満にする必要があります。エントリが 512 KB を超える場合、response フィールドは削除されます。それでも 512 KB を超える場合は、request フィールドが削除されます。それでも 512 KB を超える場合は、エントリ全体が破棄されます。
  • list()get()suggest() メソッドのレスポンス本文はログに記録されません。
  • cloudsearch.google.com と顧客検索アプリケーションからのクエリ呼び出しのみがログに記録されます。
  • search() 呼び出しの場合、リクエストに記録されるのは QueryRequestOptionsDataSourceRestriction のみです。レスポンスでは、URL とメタデータのみが監査されます。
  • データ エクスポートのバックエンド呼び出しは監査されません。