監査ロギング

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

概要

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

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

Cloud Audit Logs では、クラウド プロジェクト、フォルダ、組織ごとに以下のログが提供されます。

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

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: 監査対象の情報。

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

サービス固有のオプションの監査情報は、サービス固有のオブジェクトです。以前の統合では、このオブジェクトは 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 ロールが必要です。

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

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

ログを表示

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

監査ログの名前は次の形式です。

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

gcloud

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

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

API

  1. [Try this API] セクションに移動します。entries.list
  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 とメタデータのみが監査されます。
  • データ エクスポートのバックエンド呼び出しは監査されません。