このページでは、Cloud Audit Logs の一部として VM Manager(OS Config)が作成する監査ログについて説明します。
概要
Google Cloud サービスは「誰がいつどこで何をしたか」の確認に役立つ監査ログを記録します。各 Google Cloud プロジェクトで記録されるのは、そのプロジェクト内に直接存在するリソースの監査ログのみです。その他のエンティティ(フォルダ、組織、請求先アカウントなど)については、そのエンティティ自体の監査ログが記録されます。
Cloud Audit Logs の概要については、Cloud Audit Logs をご覧ください。Cloud Audit Logs の詳細については、監査ログについてをご覧ください。
Cloud Audit Logs では、Google Cloud のプロジェクト、フォルダ、組織ごとに次の 3 つの監査ログが保存されます。
- 管理アクティビティ監査ログ
- データアクセス監査ログ
- システム イベント監査ログ
明示的に有効にした場合にのみ、VM Manager はデータアクセス監査ログを記録します。データアクセス監査ログには、リソースの構成またはメタデータを読み取る API 呼び出しと、ユーザー提供のリソースデータの作成、変更、読み取りを行うユーザー主導の API 呼び出しが含まれます。一般公開されている(すべてのユーザーまたは認証されたすべてのユーザーが利用できる)リソース、または Google Cloud にログインせずにアクセスできるリソースに対するデータアクセス オペレーションは記録されません。
VM Manager では、管理アクティビティ監査ログは記録されません。
VM Manager では、システム イベント監査ログは記録されません。
監査対象のオペレーション
以下は、VM Manager の各監査ログタイプに対応する API オペレーションをまとめたものです。
監査ログのカテゴリ | VM Manager のオペレーション |
---|---|
管理アクティビティ監査ログ | なし |
データアクセス監査ログ |
|
システム イベント監査ログ | なし |
監査ログ形式
Cloud Logging でログビューア、Cloud Logging API、Google Cloud CLI を使用して表示できる監査ログエントリには、次のオブジェクトが含まれます。
ログエントリ自体。
LogEntry
型のオブジェクトです。よく使用されるフィールドは次のとおりです。logName
: プロジェクト ID と監査ログタイプが格納されます。resource
: 監査対象オペレーションのターゲットが格納されます。timeStamp
: 監査対象オペレーションの時間が格納されます。protoPayload
: 監査情報が格納されます。
監査ロギングデータ。ログエントリの
protoPayload
フィールドに保持されるAuditLog
オブジェクトです。サービス固有の監査情報(省略可)。
AuditLog
オブジェクトのserviceData
フィールドに保持されるサービス固有のオブジェクトです。詳細は、サービス固有の監査データをご覧ください。
これらのオブジェクトのその他のフィールドと、それらを解釈する方法については、監査ログについてをご覧ください。
ログ名
Cloud Audit Logs のリソース名は、監査ログを所有するプロジェクトまたは他のエンティティを表します。この名前を見ると、ログに管理アクティビティ、データアクセス、システム イベントの監査ロギングデータが含まれているかどうかがわかります。たとえば、次のログ名はプロジェクトの管理アクティビティ監査ログと組織のデータアクセス監査ログを表しています。
projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity organizations/[ORGANIZATION_ID]/logs/cloudaudit.googleapis.com%2Fdata_access
サービス名
VM Manager 監査ログでは、サービス名 osconfig.googleapis.com
が使用されます。
ロギング サービスの詳細については、サービスとリソースのマッピングをご覧ください。
リソースタイプ
VM Manager 監査ログでは、すべての監査ログに対してリソースタイプ audited_resource
が使用されます。
一覧については、モニタリング対象リソースタイプをご覧ください。
監査ログの有効化
データアクセス監査ログはデフォルトで無効になっており、明示的に有効にしない限り書き込まれません(例外は BigQuery のデータアクセス監査ログで、これは無効にできません)。
データアクセス監査ログの一部または全部を有効にする方法については、データアクセス ログの構成をご覧ください。
データアクセス監査ログを有効にすると、Cloud Logging のログの料金に影響が及ぶ場合があります。このページの料金のセクションを確認してください。
VM Manager では、管理アクティビティ監査ログは記録されません。
監査ログに関する権限
どの監査ログを表示またはエクスポートできるかは、Identity and Access Management の権限とロールによって決まります。ログは、プロジェクト内またはその他のエンティティ(組織、フォルダ、請求先アカウントなど)内に存在します。詳しくは、ロールについてをご覧ください。
管理アクティビティ監査ログを表示するユーザーには、その監査ログが存在するプロジェクト内で次のいずれかの IAM ロールが割り当てられている必要があります。
- プロジェクト オーナー、プロジェクト編集者、またはプロジェクト閲覧者。
- Logging のログ閲覧者のロール。
- カスタムの IAM ロール(
logging.logEntries.list
IAM 権限を含む)。
データアクセス監査ログを表示するには、監査ログを含むプロジェクト内でユーザーが次のいずれかのロールを持っている必要があります。
- プロジェクト オーナー。
- Logging のプライベート ログ閲覧者ロール。
- カスタムの IAM ロール(
logging.privateLogEntries.list
IAM 権限を含む)。
組織などのプロジェクト以外のエンティティからの監査ログを使用する場合は、プロジェクトのロールを適切な組織のロールに変更します。
ログの表示
すべての監査ログに対してクエリを実行することも、監査ログ名でログをクエリすることもできます。監査ログ名には、Google Cloud プロジェクト、フォルダ、請求先アカウント、または監査ロギング情報を表示する組織のリソース識別子が含まれています。クエリでは、インデックス付きの LogEntry
フィールドを指定できます。SQL クエリをサポートする [ログ分析] ページを使用する場合は、クエリ結果をグラフとして表示できます。
ログのクエリの詳細については、次のページをご覧ください。
Google Cloud コンソール、Google Cloud CLI、または Logging API を使用して、Cloud Logging で監査ログを表示できます。コンソール
Google Cloud コンソールでは、ログ エクスプローラを使用して、Google Cloud プロジェクト、フォルダ、または組織の監査ログエントリを取得できます。
-
Google Cloud コンソールのナビゲーション パネルで、[ロギング] を選択してから、[ログ エクスプローラ] を選択します。
既存の Google Cloud プロジェクト、フォルダ、または組織を選択します。
すべての監査ログを表示するには、次のいずれかのクエリを [クエリエディタ] フィールドに入力し、[クエリを実行] をクリックします。
logName:"cloudaudit.googleapis.com"
protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
特定のリソースと監査ログタイプの監査ログを表示するには、[クエリビルダー] ペインで次の操作を行います。
リソースタイプに、表示する監査ログを含む Google Cloud リソースを選択します。
[ログ名] で、表示する監査ログタイプを選択します。
- 管理アクティビティ監査ログの場合は、[activity] を選択します。
- データアクセス監査ログの場合は、[data_access] を選択します。
- システム イベント監査ログの場合は、[system_event] を選択します。
- ポリシー拒否監査ログの場合は、[policy] を選択します。
[クエリを実行] をクリックします。
これらのオプションが表示されない場合、Google Cloud プロジェクト、フォルダ、または組織で利用可能なその種類の監査ログは存在しないことを意味します。
ログ エクスプローラでログを表示する際に問題が発生した場合は、トラブルシューティングの情報をご覧ください。
ログ エクスプローラを使用したクエリの詳細については、ログ エクスプローラでクエリを作成するをご覧ください。 Duet AI を使用してログ エクスプローラでログエントリを要約する方法については、Duet AI の支援を使用してログエントリを要約するをご覧ください。
gcloud
Google Cloud CLI は、Logging API へのコマンドライン インターフェースを提供します。ログ名ごとに有効なリソース識別子を指定します。たとえば、クエリに PROJECT_ID が含まれている場合、指定するプロジェクト ID は、現在選択された Google Cloud プロジェクトを参照している必要があります。
Google Cloud プロジェクト レベルの監査ログエントリを読み取るには、次のコマンドを実行します。
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \ --project=PROJECT_ID
フォルダレベルの監査ログエントリを読み取るには、次のコマンドを実行します。
gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \ --folder=FOLDER_ID
組織レベルの監査ログエントリを読み取るには、次のコマンドを実行します。
gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \ --organization=ORGANIZATION_ID
Cloud 請求先アカウント レベルの監査ログエントリを読み取るには、次のコマンドを実行します。
gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \ --billing-account=BILLING_ACCOUNT_ID
1 日以上経過したログを読み取るには、コマンドに --freshness
フラグを追加します。
gcloud CLI の使用方法に関する詳細については、gcloud logging read
をご覧ください。
API
クエリを作成するときは、ログ名ごとに有効なリソース識別子を指定します。たとえば、クエリに PROJECT_ID が含まれている場合、指定するプロジェクト ID は、現在選択された Google Cloud プロジェクトを参照している必要があります。
たとえば、Logging API を使用してプロジェクト レベルの監査ログエントリを表示する手順は次のとおりです。
entries.list
メソッドのドキュメント内の [Try this API] セクションに移動します。[Try this API] フォームのリクエストの本文に、次のコードを入力します。この事前入力されたフォームをクリックすると、リクエストの本文が自動的に入力されますが、それぞれのログ名に有効な PROJECT_ID を指定する必要があります。
{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
[実行] をクリックします。
監査ログのエクスポート
監査ログは、他の種類のログをエクスポートする場合と同じ方法でエクスポートできます。ログをエクスポートする方法の詳細については、ログのエクスポートをご覧ください。監査ログのエクスポートに関する応用例の一部を以下に示します。
監査ログを長期間保持する、またはより強力な検索機能を使用するには、監査ログのコピーを Cloud Storage、BigQuery、または Pub/Sub にエクスポートします。Pub/Sub を使用すると、他のアプリケーション、他のリポジトリ、サードパーティ製品にエクスポートできます。
組織全体の監査ログを管理するには、組織内の一部またはすべてのプロジェクトからログをエクスポートできる集約シンクを作成します。
- 有効にしたデータアクセス監査ログが原因でプロジェクトのログ割り当て量を超過した場合は、データアクセス監査ログをエクスポートして Logging から除外できます。詳しくは、ログの除外をご覧ください。
料金
明示的にリクエストしたデータアクセス監査ログについては課金されます。VM Manager では、管理アクティビティ監査ログやシステム イベント監査ログは記録されません。監査ログの料金の詳細については、Google Cloud のオペレーション スイート料金をご覧ください。