Google Cloud Armor 監査ロギングの情報

このページでは、Cloud Audit Logs の一部として Google Cloud Armor によって作成される監査ログについて説明します。

概要

Google Cloud サービスは、「誰がいつどこで何をしたか」の確認に役立つ監査ログを記録します。Cloud プロジェクトで記録されるのは、そのプロジェクト内に直接存在するリソースの監査ログのみです。フォルダ、組織、Cloud 請求先アカウントなどの他のエンティティでは、そのエンティティ自体の監査ログが記録されます。

Cloud Audit Logs の概要については、Cloud Audit Logs をご覧ください。Cloud Audit Logs の詳細については、監査ログについてをご覧ください。

Google Cloud Armor では、次の種類の監査ログを使用できます。

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

    メタデータまたは構成情報を書き込む「管理書き込み」オペレーションが含まれます。

    管理アクティビティ監査ログは無効にできません。

  • データアクセス監査ログ

    メタデータまたは構成情報を読み取る「管理読み取り」オペレーションが含まれます。ユーザー提供データの読み取りまたは書き込みを行う「データ読み取り」オペレーションと「データ書き込み」オペレーションも含まれます。

    データアクセス監査ログを受信するには、監査ログを明示的に有効にする必要があります。

監査対象のオペレーション

以下は、Google Cloud Armor の各監査ログタイプに対応する API オペレーションをまとめたものです。

監査ログのカテゴリ Google Cloud Armor のオペレーション
管理アクティビティ監査ログ backendServices.delete
backendServices.insert
backendServices.patch
backendServices.setSecurityPolicy
backendServices.update
securityPolicies.addRule
securityPolicies.delete
securityPolicies.insert
securityPolicies.patch
securityPolicies.patchRule
securityPolicies.removeRule
データアクセス監査ログ backendServices.aggregatedList
backendServices.get
backendServices.getHealth
backendServices.getbackendServicestatus
backendServices.list
securityPolicies.get
securityPolicies.getRule
securityPolicies.list

監査ログ形式

Cloud Logging でログビューア、Cloud Logging API、gcloud コマンドライン ツールを使用して表示できる監査ログエントリには、次のオブジェクトがあります。

  • ログエントリ自体。LogEntry 型のオブジェクトです。よく使用されるフィールドは次のとおりです。

    • logName: プロジェクト ID と監査ログタイプが格納されます。
    • resource: 監査対象オペレーションのターゲットが格納されます。
    • timeStamp: 監査対象オペレーションの時間が格納されます。
    • protoPayload: 監査対象の情報が格納されます。
  • 監査ロギングデータ。ログエントリの protoPayload フィールドに保持される AuditLog オブジェクトです。

  • サービス固有の監査情報(省略可)。サービス固有のオブジェクトです。古い統合では、このオブジェクトは AuditLog オブジェクトの serviceData フィールドに保持されます。新しい統合では、metadata フィールドを使用します。

これらのオブジェクトのその他のフィールドと、それらを解釈する方法については、監査ログについてをご覧ください。

ログ名

Cloud 監査ログのリソース名は、監査ログを所有する Cloud プロジェクトまたは他の Google Cloud エンティティを表します。この名前を見ると、ログに管理アクティビティ、データアクセス、システム イベントの監査ロギングデータが含まれているかどうかがわかります。たとえば次のログ名は、プロジェクトの管理アクティビティ監査ログと組織のデータアクセス監査ログを表しています。変数は、プロジェクトと組織の識別子を表します。

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

サービス名

Google Cloud Armor の監査ログでは、サービス名 compute.googleapis.com が使用されます。

すべてのロギング サービスについては、サービスとリソースのマッピングをご覧ください。

リソースタイプ

Google Cloud Armor の監査ログでは、すべての監査ログにリソースタイプ backendServicessecurityPolicies が使用されます。

他のリソースタイプの一覧については、モニタリング対象リソースタイプをご覧ください。

監査ロギングの有効化

管理アクティビティ監査ログは常に有効になっています。無効にすることはできません。

データアクセス監査ログはデフォルトで無効になっており、明示的に有効にしない限り書き込まれません(例外は BigQuery のデータアクセス監査ログで、これは無効にすることができません)。

データアクセス監査ログの一部またはすべてを有効にする手順については、データアクセス ログの構成をご覧ください。

監査ログに関する権限

どの監査ログを表示またはエクスポートできるかは、Identity and Access Management の権限とロールによって決まります。ログは、Cloud プロジェクトの中、および組織、フォルダ、Cloud 請求先アカウントなど他のいくつかのエンティティの中に存在します。詳しくは、ロールについてをご覧ください。

管理アクティビティ監査ログを表示するユーザーには、その監査ログが存在するプロジェクト内で次のいずれかの IAM ロールが割り当てられている必要があります。

データアクセス監査ログを表示するには、監査ログを含むプロジェクト内でユーザーが次のいずれかのロールを持っている必要があります。

組織などのプロジェクト以外のエンティティからの監査ログを使用する場合は、Cloud プロジェクト ロールを適切な組織ロールに変更します。

ログの表示

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

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

Console

Cloud Console のログ エクスプローラを使用して、監査ログエントリを取得できます。

  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 を指定します。

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 が含まれている場合、指定するプロジェクト 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 Storage、BigQuery、または Pub/Sub にエクスポートします。Pub/Sub を使用すると、他のアプリケーション、他のリポジトリ、サードパーティ製品にエクスポートできます。

  • 組織全体の監査ログを管理するには、組織内の一部または全部のプロジェクトからログをエクスポートできる集約シンクを作成します。

  • 有効にしたデータアクセス監査ログが原因で Cloud プロジェクトのログ割り当て量を超過した場合は、データアクセス監査ログをエクスポートして Logging から除外できます。詳細については、ログの除外をご覧ください。

料金

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

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

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

次のステップ