Cloud 監査ログ

Cloud 監査ログでは、Google Cloud のプロジェクト、フォルダ、組織ごとに管理アクティビティ、データアクセス、システム イベントの 3 つの監査ログが維持されます。Google Cloud サービスによって、これらのログに監査ログエントリが書き込まれ、Google Cloud リソース内で「誰がどこでいつ何をしたか」を調べるのに役立ちます。

監査ログを提供する Google Cloud サービスの一覧については、監査ログ付きの Google サービスをご覧ください。最終的には、すべての Google Cloud サービスが監査ログを提供するようになります。

管理アクティビティ監査ログ

管理アクティビティ監査ログには、リソースの構成またはメタデータを変更する API 呼び出しやその他の管理アクションに関するログエントリが含まれます。このログは、たとえば、ユーザーが VM インスタンスを作成したときや、Identity and Access Management 権限を変更したときに記録されます。

このログを表示するには、IAM 役割の Logging/ログ閲覧者またはプロジェクト/閲覧者が必要です。

管理アクティビティ監査ログは常に書き込まれます。構成したり無効にしたりすることはできません。管理アクティビティ監査ログは無料で使用できます。ロギングの使用量上限について詳しくは、割り当てと上限をご覧ください。

データアクセス監査ログ

データアクセス監査ログには、リソースの構成やメタデータを読み取る API 呼び出しや、ユーザー提供のリソースデータの作成、変更、読み取りを行うユーザー主導の API 呼び出しが含まれます。(すべてのユーザーまたはすべての認証済みユーザーが利用できる)一般公開リソースや、Google Cloud へのログインなしでアクセスできるリソースに対するデータアクセス オペレーションは、データアクセス監査ログに記録されません。

このログを表示するには、Logging/プライベート ログ閲覧者またはプロジェクト/オーナーという IAM 役割が必要です。

データアクセス監査ログは、非常に大きくなる可能性があるため、デフォルトで無効になっています。書き込むには、明示的に有効にする必要があります。ログを有効にすると、追加のログ使用量がプロジェクトに対して請求される可能性があります。データアクセス監査ログを有効にして構成する方法については、データアクセス ログの構成をご覧ください。

ロギングの使用量上限について詳しくは、割り当てと上限をご覧ください。発生する可能性のある費用の詳細については、料金をご覧ください。

システム イベント監査ログ

システム イベント監査ログには、リソースの構成を変更する Google Cloud 管理アクションのログエントリが含まれます。システム イベント監査ログは Google システムによって生成されます。直接的なユーザーのアクションによっては生成されません。

このログを表示するには、IAM 役割の Logging/ログ閲覧者またはプロジェクト/閲覧者が必要です。

システム イベント監査ログは常に書き込まれます。構成したり無効にしたりすることはできません。システム イベント監査ログは無料で使用できます。ロギングの使用量上限について詳しくは、割り当てと上限をご覧ください。

監査ログエントリの構造

Cloud Logging では、監査ログエントリはすべて LogEntry タイプのオブジェクトになります。監査ログエントリと他のログエントリを区別するのは、protoPayload フィールドです。このフィールドには、監査ロギングデータを格納する AuditLog オブジェクトが含まれています。

監査ログエントリの読み取りと解釈の方法については、監査ログについてをご覧ください。

監査ログの表示

監査ログを検索して表示するには、監査ログ情報を表示する対象の Cloud プロジェクト、フォルダ、または組織の識別子を把握している必要があります。resource.type などの他のインデックス付き LogEntry フィールドをさらに指定できます。詳しくは、ログエントリの迅速な検索をご覧ください。

監査ログ名は次のようになります。名前には、Cloud プロジェクト、フォルダ、または組織の識別子の変数が含まれています。

   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

   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

   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

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

Console

Cloud Console のログビューアを使用して、Cloud プロジェクトの監査ログエントリを取得できます。

  1. Cloud Console で、[ロギング] > [ログビューア] ページに移動します。

    ログビューア ページに移動

  2. ログビューアのプレビュー版ページで、既存の Cloud プロジェクトを選択します。

  3. [クエリビルダー] ペインで、次の操作を行います。

    • [リソース] で、監査ログを表示する対象の Google Cloud リソースタイプを選択します。

    • [ログ名] で、表示する監査ログタイプを選択します。

      • 管理アクティビティ監査ログの場合は、[アクティビティ] を選択します。
      • データアクセス監査ログの場合は、[data_access] を選択します。
      • システム イベント監査ログの場合は、[system_event] を選択します。

    これらのオプションが表示されない場合、Cloud プロジェクトにそのタイプの監査ログが存在しないことを意味します。

    新しいログビューアを使用したクエリの詳細については、ログクエリの作成(プレビュー版)をご覧ください。

gcloud

gcloud コマンドライン ツールは、Cloud Logging API へのコマンドライン インターフェースを提供します。それぞれのログ名の中で有効な PROJECT_IDFOLDER_ID または ORGANIZATION_ID を指定します。

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

gcloud ツールの使用の詳細については、ログエントリの読み取りをご覧ください。

API

クエリを作成する場合は、変数を有効な値に置き換え、適切なプロジェクトレベル、フォルダレベル、または監査ログ名に表示されている組織レベルの監査ログ名もしくは ID を代わりに使用します。たとえば、クエリに PROJECT_ID が含まれている場合、指定するプロジェクト識別子は、現在選択された Cloud プロジェクトを参照している必要があります。

Logging API を使用して監査ログエントリを確認する手順は次のとおりです。

  1. entries.list メソッドのドキュメント内の [Try this API] セクションに移動します。

  2. [Try this API] フォームのリクエストの本文に、次のコードを入力します。この事前入力されたフォームをクリックすると、リクエストの本文が自動的に入力されますが、それぞれのログ名に有効な PROJECT_ID を指定する必要があります。

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. [Execute] をクリックします。

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

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

[アクティビティ] ページの使用

Google Cloud プロジェクトまたは組織の Cloud Console の [アクティビティ] ページで、短縮された監査ログエントリを表示できます。短縮された監査ログエントリを表示する手順は次のとおりです。

  1. [アクティビティ] ページに移動

    [アクティビティ] ページに移動

  2. プロジェクト セレクタで、表示する監査ログエントリの Google Cloud プロジェクトまたは組織を選択します。

  3. [フィルタ] パネルで、表示するエントリを選択します。

実際の監査ログエントリには、[アクティビティ] ページに表示される情報よりも多くの情報が含まれている場合があります。

[アクティビティ] ページでは、ログに記録された操作を実行している ID が監査ログエントリから編集されて、User (anonymized) として表示されます。詳細については、このページの監査ログのユーザー ID をご覧ください。

監査ログのエクスポート

監査ログエントリを Cloud Logging または特定の Google Cloud サービスにエクスポートできます。

監査ログエントリを Logging の外部にエクスポートするには、ログシンクを作成します。エクスポートする監査ログの種類を指定するクエリをシンクに付与します。クエリの例については、セキュリティ ロギングのクエリをご覧ください。

Google Cloud の組織、フォルダ、請求先アカウントの監査ログエントリをエクスポートする場合は、集約シンクを確認してください。

監査ログの保持期間

個々の監査ログエントリは、一定期間保持され、その後削除されます。Logging でログエントリが保持される期間の詳細については、割り当てと上限: ログの保持期間で保持情報をご覧ください。これ以外の方法で監査ログエントリの削除や変更を行うことはできません。

監査ログのタイプ 保持期間
管理アクティビティ 400 日
データアクセス 30 日
システム イベント 400 日

ログを長く保持したい場合は、監査ログのエントリや Stackdriver Logging のその他のログエントリをエクスポートすれば、いつまでも保持できます。

また、Cloud Logging のログ保持期間は、1~3,650 日の間で構成できます。詳しくは、ログの保持: カスタム保持をご覧ください。

監査ログの呼び出し元 ID

監査ログには、ログに記録されたオペレーションを Google Cloud リソースに対して実行した ID が記録されます。呼び出し元の ID は、AuditLog オブジェクトの AuthenticationInfo フィールドに保持されます。

次の状況では、これらの条件がすべて満たされると、呼び出し元の主要メールアドレスが監査ログから削除されます。

  • 読み取り専用のオペレーションです。
  • 「権限が拒否されました」というエラーでオペレーションが失敗しました。
  • ID がサービス アカウントであり、ID がリソースに関連付けられた Google Cloud 組織のメンバーでない場合。ID がサービス アカウントでない場合、この条件は適用されません。

特定の Google Cloud プロダクトには、上記の条件に加えて以下が適用されます。

Google Cloud Console の [アクティビティ] ページを使用して監査ログを表示している場合、ID が編集された、または空のログエントリに User (anonymized) が表示されます。

監査ログを生成する Google サービス

監査ログを提供する Google Cloud サービスの一覧については、監査ログ付きの Google サービスをご覧ください。最終的には、すべての Google Cloud サービスが監査ログを提供するようになります。