Cloud Audit Logs の概要

このドキュメントでは、Cloud Audit Logs の概要について説明します。

Google Cloud サービスでは、管理アクティビティと Google Cloud リソース内のアクセスを記録する監査ログを書き込みます。監査ログは、Google Cloud リソース内でオンプレミス環境と同じレベルの透明性を確保しながら「いつ誰がどこで何をしたか」という問いに答えるために役立ちます。監査ログを有効にすると、セキュリティ、監査、コンプライアンス エンティティが Google Cloud のデータとシステムをモニタリングして、脆弱性や外部データの不正使用の可能性を確認できます。

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

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

監査ログの種類

Cloud Audit Logs では、Cloud プロジェクト、フォルダ、組織ごとに以下の監査ログが保存されます。

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

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

管理アクティビティ監査ログは常に書き込まれます。構成する、除外する、または無効にすることはできません。Cloud Logging API を無効にしても、管理アクティビティ監査ログは生成されます。

データアクセス監査ログ

データアクセス監査ログには、リソースの構成やメタデータを読み取る API 呼び出しや、ユーザー提供のリソースデータの作成、変更、読み取りを行うユーザー主導の API 呼び出しが含まれます。

Identity and Access Management ポリシー allAuthenticatedUsers または allUsers を使用する一般公開されたリソースでは、監査ログは生成されません。Google Cloud、Google Workspace、Cloud Identity、Drive Enterprise アカウントにログインせずにアクセスできるリソースでは、監査ログは生成されません。これにより、エンドユーザー ID と情報が保護されます。

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

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

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

システム イベント監査ログは常に書き込まれます。構成したり、除外したり、無効にしたりすることはできません。

ポリシー拒否監査ログ

セキュリティ ポリシー違反が原因で、Google Cloud サービスがユーザーまたはサービス アカウントへのアクセスを拒否した場合、ポリシー拒否監査ログが記録されます。セキュリティ ポリシーは、VPC Service Controls によって決定されます。VPC Service Controls は、ポリシー拒否監査ログを Cloud Logging に提供します。

ポリシー拒否監査ログはデフォルトで生成され、Cloud プロジェクトにはログ ストレージの料金が発生します。ポリシー拒否監査ログを無効にすることはできませんが、除外フィルタを使用して、ポリシー拒否監査ログの取り込みと Cloud Logging への保存を防ぐことができます。

監査ログエントリの構造

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

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

監査ログの呼び出し元 ID

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

オペレーションが読み取り専用で「アクセスが拒否されました」というエラーで失敗した場合、呼び出し元の主要メールアドレスは監査ログから削除されます。唯一の例外は、呼び出し元がリソースに関連付けられている Google Cloud 組織のサービス アカウントである場合に、メールアドレスが秘匿化されないことです。

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

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

監査ログの表示

監査ログを検索して表示するには、監査ログ情報を表示する対象の 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
   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

Cloud Console、gcloud コマンドライン ツール、または Logging API を使用して、Cloud Logging の監査ログを表示できます。

Console

Cloud Console のログ エクスプローラを使用して、Cloud プロジェクト、フォルダ、または組織の監査ログエントリを取得できます。

  1. Cloud Console で、[ロギング] > [ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] ページに移動

  2. [ログ エクスプローラ] ページで、既存の Cloud プロジェクト、フォルダ、または組織を選択します。

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

    • リソースタイプに、表示する監査ログを含む Google Cloud リソースを選択します。

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

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

    これらのオプションが表示されない場合、Cloud プロジェクト、フォルダ、または組織で利用可能なそのタイプの監査ログは存在しないことを意味します。

    ログ エクスプローラを使用したクエリの詳細については、ログクエリのビルドをご覧ください。

gcloud

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

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 が含まれている場合、指定するプロジェクト 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. [実行] をクリックします。

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

監査ログエントリの例と、その中に記録されている最も重要な情報を見つける方法については、監査ログエントリの例をご覧ください。

アクティビティ ページを使用する

Cloud プロジェクト フォルダまたは組織の Cloud Console の [アクティビティ] ページで、短縮された監査ログエントリを表示できます。実際の監査ログエントリには、[アクティビティ] ページに表示される情報よりも多くの情報が含まれている場合があります。

Cloud Console で短縮された監査ログエントリを表示する手順は次のとおりです。

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

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

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

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

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

監査ログの保存とルーティング

Cloud Logging では、ログデータを保存して整理するためのコンテナとしてログバケットを使用します。Cloud プロジェクト、フォルダ、組織ごとに、Logging によって自動的に _Required_Default という 2 つのログバケットと、対応する名前のシンクが作成されます。

Cloud Logging の _Required バケットは、管理アクティビティ監査ログとシステム イベント監査ログを取り込んで保存します。_Required バケットやバケット内のログデータは構成できません。

_Default バケットは、デフォルトで有効なデータアクセス監査ログとポリシー拒否監査ログを取り込んで保存します。データアクセス監査ログが _Default バケットに保存されないようにするには、ログを無効にします。ポリシー拒否監査ログが _Default バケットに保存されないようにするには、シンクのフィルタを変更してポリシー拒否監査ログを除外します。

監査ログエントリを、Cloud プロジェクト レベルでユーザー定義の Cloud Logging バケットにルーティングしたり、シンクを使用して Logging の外部でサポートされている宛先にルーティングしたりすることもできます。手順については、シンクを構成するをご覧ください。

ログシンクのフィルタを構成するときは、ルーティングする監査ログの種類を指定する必要があります。フィルタリング例については、セキュリティ ロギングのクエリをご覧ください。

Google Cloud の組織、フォルダ、請求先アカウントの監査ログエントリをルーティングする場合は、集約シンクを構成するをご覧ください。

監査ログの保持期間

Logging でログエントリが保持される期間の詳細については、割り当てと上限: ログの保持期間で保持情報をご覧ください。

アクセス制御

IAM の権限とロールにより、Logging APIログ エクスプローラgcloud コマンドライン ツールでログデータにアクセス可能かどうか判断されます。

必要となる IAM の権限とロールの詳細については、アクセス制御ガイドをご覧ください。

割り当てと上限

監査ログの最大サイズを含む、ロギングの使用量上限について詳しくは、割り当てと上限をご覧ください。

料金

管理アクティビティ監査ログとシステム イベント監査ログは無料です。

データアクセス監査ログとポリシー拒否監査ログは課金対象です。

Cloud Logging の料金については、Google Cloud のオペレーション スイートの料金: Cloud Logging をご覧ください。

次のステップ