このページでは、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 の監査ロギングを有効にするには:
- (省略可)ログを保存する Google Cloud プロジェクトを作成していない場合は、Cloud Search API へのアクセスを構成するをご覧ください。
- ログを保存する Google Cloud プロジェクトのプロジェクト ID を取得します。プロジェクトの識別をご覧ください。
- 特定の API で有効にするログカテゴリを特定します。監査対象のオペレーションをご覧ください。
updateCustomer()REST API メソッドを使用して、カテゴリでauditLogSettingsを更新します。- OAuth 2.0 アクセス トークンを取得します。OAuth 2.0 を使用して Google API にアクセスするをご覧ください。次のいずれかのスコープを使用します。
https://www.googleapis.com/auth/cloud_search.settings.indexinghttps://www.googleapis.com/auth/cloud_search.settingshttps://www.googleapis.com/auth/cloud_search
次の 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_TOKEN、PROJECT_ID、カテゴリ(logAdminReadActions、logDataWriteActions、logDataReadActions)を置き換えます。管理者の書き込みアクションはデフォルトで有効になっています。クエリ メソッドをログに記録するには、データ読み取りカテゴリを有効にします。Cloud Search API への後続のリクエストは、指定されたプロジェクトにログを生成します。
- OAuth 2.0 アクセス トークンを取得します。OAuth 2.0 を使用して Google API にアクセスするをご覧ください。次のいずれかのスコープを使用します。
クエリ メソッドの監査ロギングには、データ読み取りカテゴリが必要です。
query.sources.list、query.suggest、query.searchのロギングを有効にするには:- 各検索アプリケーションの名前を
searchapplications/<search_application_id>形式で取得します。 enableAuditLogをtrueに設定してsettings.searchapplications.updateを呼び出します。
- 各検索アプリケーションの名前を
cloudsearch.google.comからの呼び出しの監査ロギングを有効にするには、データ読み取りカテゴリが有効になっていることを確認し、searchapplications/defaultを更新します。
Google Cloud コンソールのログ エクスプローラでログを表示します。Cloud Search の監査ログには、次のフィルタを使用します。
protoPayload.serviceName="cloudsearch.googleapis.com"
詳細については、ログ エクスプローラの概要をご覧ください。
監査ログに関する権限
表示またはエクスポートできるログは、Identity and Access Management(IAM)の権限によって決まります。詳しくは、役割についてをご覧ください。
管理アクティビティ監査ログを表示するには、次のいずれかの IAM ロールが必要です。
- プロジェクト オーナー、編集者、閲覧者。
- Logging のログ閲覧者ロール。
logging.logEntries.list権限のあるカスタム IAM ロール。
データアクセス監査ログを表示するには、次のいずれかのロールが必要です。
- プロジェクト オーナー。
- Logging のプライベート ログ閲覧者ロール。
- カスタムの IAM ロール(
logging.privateLogEntries.listIAM 権限を含む)
組織などのプロジェクト以外のエンティティからの監査ログを使用する場合は、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%2Fpolicyfolders/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
- Google Cloud コンソールの [ロギング] > [ログ エクスプローラ] ページに移動します。[ログ エクスプローラ] に移動
- プロジェクトを選択します。
- [クエリビルダー] ペインで、リソースとログタイプを選択します。新しいログ エクスプローラを使用したクエリの詳細については、ログ エクスプローラでクエリを作成するをご覧ください。
gcloud
プロジェクト レベルのログに対して次のコマンドを実行します。
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
--project=PROJECT_ID
API
entries.listメソッドの [この API を試す] セクションに移動します。- このリクエスト本文を使用します。
PROJECT_IDは、選択したプロジェクト ID に置き換えます。{ "resourceNames": ["projects/PROJECT_ID"], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" } - [実行] をクリックします。
クエリの詳細については、ロギングクエリ言語をご覧ください。
監査ログエントリのサンプルと、その中にある特に重要な情報を見つける方法については、監査ログについてをご覧ください。
監査ログをエクスポートする
監査ログは、他のログと同様にエクスポートできます。ログをエクスポートするをご覧ください。
- 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()呼び出しの場合、リクエストに記録されるのはQuery、RequestOptions、DataSourceRestrictionのみです。レスポンスでは、URL とメタデータのみが監査されます。- データ エクスポートのバックエンド呼び出しは監査されません。