Google Cloud の Cloud Audit Logs とは?

Google Cloud の Cloud Audit Logs とは?

Google Cloud の監査ログ生成サービス Cloud Audit Logs について、4種類の監査ログの特徴や取り扱い方法など詳細解説します。
Clock Icon2025.03.21

はじめに

Google Cloud の Cloud Audit Logs は、ログ分析や管理のためのサービスである Cloud Logging で収集可能な「監査ログ」を生成するサービスです。
Cloud Audit Logs で生成される監査ログは、API 操作やシステムイベントなど複数種類あり、ログの種別によって無料/有料、有効化が必要なものなどが存在します。

ログを運用管理するうえで極めて重要となる監査ログですが、むやみに有効化して取得することで大幅なコスト高騰を招く可能性もあります。適切なログを、適切な期間、適切な場所で管理するため、監査ログにはどのような種類があり、どのような特徴があり、Google Cloud でどのように扱われるか をこの記事で学んでいきましょう。

概要

Cloud Audit Logs は API 操作やシステムイベントなどの監査ログを生成するサービスです。Cloud Audit Logs には以下4種類の監査ログがあります。

種類 概要 デフォルト設定 設定変更可否 料金
管理アクティビティ監査ログ 管理書き込み に該当する API 操作ログ 有効 無効化できない 無料
データアクセス監査ログ 管理読み取り/データ読み取り/データ書き込み に該当する API 操作ログ 無効(BigQuery以外) 有効化/無効化可能 有料
システムイベント監査ログ Google Cloud リソース自体が生成するログ 有効 無効化できない 無料
ポリシー拒否監査ログ ユーザまたはサービスアカウントのアクセス拒否ログ 有効 無効化できないが Cloud Logging で収集しないようにログフィルタを構成できる 有料

管理アクティビティ監査ログデータアクセス監査ログ は、いずれも IAM ユーザやサービスアカウントによる API 操作のログです。
API 操作のうち「管理書き込み」に該当する操作が管理アクティビティ監査ログに該当し、それ以外がデータアクセス監査ログとなります。
4種の監査ログのうちデータアクセス監査ログは BigQuery 以外のログが無効化されているため、必要に応じて有効化する必要があります。

システムイベント監査ログ は、Google Cloud リソースの変更などに対し、Google Cloud リソース自体が生成するログです。例えば、ユーザが API リクエストで Google Cloud リソースの作成指示をすると、API リクエスト自体は「管理アクティビティ監査ログ」として生成されますが、その後の Google Cloud リソースの作成処理プロセスで発生するログは「システムイベント監査ログ」に該当します。
API 操作をトリガーとしない、コンピュートリソースのスケールアウトやスケールイン動作などもシステムイベント監査ログとなります。

ポリシー拒否監査ログ は、IAM ユーザやサービスアカウントのアクセス拒否によって発生するログです。

なお、上記「料金」に有料/無料を記載していますが、厳密には Cloud Audit Logs によるログ生成では費用は発生せず、Cloud Logging のログバケットに保存されることで費用が発生します。詳細は後述します。

管理アクティビティ監査ログとデータアクセス監査ログ

API 操作で発生するログには 4 種類のログがあり、前述の通り「管理書き込み」が管理アクティビティ監査ログ、それ以外がデータアクセス監査ログとなります。

ログタイプ 概要 監査ログ種類
管理書き込み(ADMIN_WRITE) リソースの構成またはメタデータを変更するオペレーション 管理アクティビティ監査ログ
管理読み取り(ADMIN_READ) リソースの構成またはメタデータを読み取るオペレーション データアクセス監査ログ
データ読み取り(DATA_READ) ユーザデータを読み取るオペレーション データアクセス監査ログ
データ書き込み(DATA_WRITE ユーザデータを書き込むオペレーション データアクセス監査ログ

Cloud Storage(storage.googleapis.com) に対する操作を例に挙げてみます。Cloud Storage に対するログタイプごとの API 操作を一部抜粋して以下に記載します。(引用元)

ログタイプ 操作
管理書き込み IAM ポリシーの設定 / 変更
バケットの作成
バケットの削除
バケットのメタデータの更新
管理読み取り IAM ポリシーの取得
オブジェクトの ACL の取得
バケットのメタデータの取得
バケットのリストの表示
データ読み取り オブジェクトデータの取得
オブジェクトメタデータの取得
オブジェクトのリスト
フォルダのメタデータの取得
データ書き込み オブジェクトの作成
オブジェクトの削除
フォルダの作成
フォルダの削除

ざっくりですが、どのようなログがどのログタイプに該当するかイメージできましたでしょうか?

もちろんですが API 操作ログでどのようなログが取得できるかは Google Cloud サービスによって異なります。
それぞれの Google Cloud サービスごとに取得できるログの種類やログタイプは以下ドキュメントから確認できます。

https://cloud.google.com/logging/docs/audit/services?hl=ja

生成された監査ログの保存先

Cloud Audit Logs によって生成されたログは、デフォルトで Cloud Logging の ログバケット に保存されます。
ログバケットとは、Cloud Logging のエクスプローラーで検索や分析をする際に参照するバケットです。Cloud Logging のログバケットにはデフォルトで _Required_Default というログバケットが存在します。_Required_Default はそれぞれ以下の仕様となっています。

ログバケット 料金 保存期限 設定変更可否 保存されるログの種類
_Required 無料 400日 不可 管理アクティビティ監査ログ
システムイベント監査ログ
_Default 有料 30日(デフォルト) 保存期間、保存するログなどの設定を変更可能 _Required に保存されるログ以外

AuditLogs
監査ログの保存イメージ

冒頭の概要で、料金の有料/無料を記載しましたが、「データアクセス監査ログ」と「ポリシー拒否監査ログ」が有料となるのは _Default に保存されるためです。ログバケットにどのログを保存するかは ログシンク というログの転送ルール設定に記述されており、 _Default のログシンクを変更することで保存すべき監査ログを絞ることもできます。

補足ですが、アプリケーションログやログエージェントが収集したログなど監査ログ以外のログもデフォルトで _Default に保存されます。

ログシンクは新規にカスタム作成することもでき、ログの転送先として Cloud Storage や BigQuery、Cloud Pub/Sub を指定することも可能です。

データアクセス監査ログの有効化

データアクセス監査ログは大量のログが出力される可能性があることからデフォルトで無効化(BigQuery以外)されています。たとえば、Google Cloud コンソール上をクローリングするだけで都度読み取りのアクセスが発生し大量のログが出力されます。
しかし、公式ドキュメントにも以下の記載がある通り 有効化を推奨 しています。

データアクセス監査ログは、Google サポートでアカウントの問題をトラブルシューティングする際に役立ちます。そのため、可能な場合は、データアクセス監査ログを有効にすることをおすすめします。

しかし、むやみに全てのログを有効化すると大量のログ出力により大幅なコスト高騰を招く可能性があります。データアクセス監査ログはログタイプごとの有効/無効、サービスごとの有効/無効を設定できますので、有効化する場合はログ取得の目的に合わせ 何を取得するか をしっかり検討しましょう。

データアクセス監査ログは組織/フォルダ/プロジェクト単位で有効化が可能で、設定を継承します。親リソースで有効化された設定は無効化できません。

Cloud Console だと [IAM と管理] -> [監査ログ] から設定が可能です。
[デフォルトの構成]から、サービス全体に対する「管理書き込み」 「データ読み取り」 「データ書き込み」の有効/無効が設定できます。
また、各サービスごとに「管理書き込み」 「データ読み取り」 「データ書き込み」の有効/無効を設定することもできます。

監査ログ – IAM と管理 – alive.classmethod.i… – Google Cloud コンソール
監査ログ設定画面

各種監査ログの検索方法

Cloud Logging ログバケットに保存された監査ログは ログエクスプローラー から検索することができます。

各監査ログは以下のような logname を持ちます。

監査ログ種類 logname
管理アクティビティ監査ログ cloudaudit.googleapis.com%2Factivity
データアクセス監査ログ cloudaudit.googleapis.com%2Fdata_access
システムイベント監査ログ cloudaudit.googleapis.com%2Fsystem_event
ポリシー拒否監査ログ cloudaudit.googleapis.com%2Fpolicy

厳密には以下のようにログが発生元のリソース(以下の場合はプロジェクト)も含めた名前となります。

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity

実際のログは以下のようになります。logName フィールドを確認することで監査ログの種類が確認できます。以下のログは「管理アクティビティ監査ログ」です。

{
insertId: "-2r1vane3vyor"
logName: "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload: {9}
...(省略)...
receiveTimestamp: "2025-03-01T06:19:08.367768385Z"
resource: {2}
...(省略)...
severity: "NOTICE"
timestamp: "2025-03-01T06:19:08.330123Z"
}

ログエクスプローラーから検索する場合、以下のようにログ名を絞り込むことで簡単に監査ログをフィルタすることができます。

Log-Explorer

おわりに

Cloud Audit Logs が生成する監査ログの種類や特徴について理解いただけましたでしょうか。

監査ログの運用戦略を立てる際は、セキュリティ要件とコスト効率のバランスを慎重に検討することが重要です。
Cloud Audit Logs の種類や特徴を良く理解し、今一度自社のログ運用戦略を振り返っていただけたら幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.