Cloud Audit Logging

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

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

管理アクティビティ ログ

管理アクティビティ ログには、リソースの構成またはメタデータを変更する API 呼び出しやその他の管理アクションのログエントリが含まれます。たとえば、VM インスタンスおよび App Engine アプリケーションの作成時や権限の変更時にログに記録されます。ログを表示するには、Logging / ログ閲覧者またはプロジェクト / 閲覧者という Cloud Identity and Access Management(IAM)役割が必要です。

管理アクティビティ ログは常に有効です。管理アクティビティ監査ログは無料で使用できます。詳細については、ロギングの使用制限をご覧ください。

システム イベント ログ

システム イベント ログには、Compute Engine によって実行されたシステム イベントに関するログエントリが含まれます。たとえば、各ライブ マイグレーションがシステム イベントとして記録されます。ログを表示するには、Logging / ログ閲覧者またはプロジェクト / 閲覧者という Cloud IAM 役割が必要です。

システム イベント ログは常に有効です。システム イベント監査ログは無料で使用できます。詳細については、ロギングの使用制限をご覧ください。

データアクセス ログ

データアクセス監査ログには、ユーザー提供データを作成、変更、または読み込む API 呼び出しが記録されます。ログを表示するには、Logging / プライベート ログ閲覧者またはプロジェクト / オーナーという Cloud IAM 役割が必要です。

データアクセス監査ログには、一般公開リソース(すべてのユーザーまたはすべての認証済みユーザーが利用可能)や GCP にログインせずにアクセスできるリソースに対して、上記のデータアクセス オペレーションは記録されません。

データアクセス監査ログは、非常に大きくなる可能性があるため、デフォルトで無効になっています。ログを有効にすると、追加のログ使用量がプロジェクトに対して請求される可能性があります。

BigQuery のデータアクセス ログは、他のデータアクセス ログとは異なる方法で処理されます。BigQuery ログはデフォルトで有効になっており、無効にすることはできません。これらはログ割り当てにカウントされません。

データアクセス ログを有効にして構成するには、データアクセス ログの構成をご覧ください。

ログ割り当ての詳細については、ロギングの使用制限をご覧ください。

監査ログエントリの構造

Stackdriver Logging の監査ログエントリはすべて LogEntry 型のオブジェクトであり、次の情報が保存されます。

  • ログエントリを所有するプロジェクトまたは組織
  • ログエントリが適用されるリソースモニタリング対象リソースリストリソースタイプと特定のインスタンスを表す値から構成されます。
  • ログ名
  • タイムスタンプ
  • ペイロードprotoPayload 型になります。監査ログエントリのペイロードは AuditLog 型のオブジェクト(プロトコル バッファ)で、一部のサービスが追加情報を格納するために使用する serviceData フィールドが含まれています。

すべての監査ログエントリには、監査ログの名前、リソース、サービスが含まれています。これらの名前を使用して、監査ログエントリをフィルタリングできます。

  • ログ名: 監査ログエントリは、プロジェクト、フォルダ、組織内のログに属します。ログ名は次のとおりです。
   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

プロジェクトまたは組織内では、これらのログ名は通常、activitysystem_eventdata_access と略されます。

  • リソース: 各監査ログエントリには、なんらかのリソースが含まれています。たとえば、単一の Compute Engine VM インスタンスまたはすべての VM インスタンスからの監査ログエントリを表示できます。リソースタイプの一覧については、モニタリング対象リソースタイプをご覧ください。

  • サービス: サービスは、Compute Engine、Cloud SQL、Cloud Pub/Sub などの個別の GCP プロダクトです。各サービスは名前で識別されます。Compute Engine は compute.googleapis.com、Cloud SQL は cloudsql.googleapis.com などです。

    リソースタイプは単一のサービスに属しますが、サービスは複数のリソースタイプを持つことができます。サービスとリソースの一覧については、サービスとリソースのマッピングをご覧ください。

詳細については、監査ログのデータ型をご覧ください。

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

監査ログの表示

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

基本ビューア

GCP Console でログビューアの基本的なインターフェースを使用して、監査ログエントリを取得できます。次の操作を行います。

  1. GCP Console の [Stackdriver Logging] > [ログ](ログビューア)ページに移動します。

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

  2. ページの上部で既存の GCP プロジェクトを選択するか、新しいプロジェクトを作成します。

  3. 最初のプルダウン メニューで、監査ログを表示するリソースタイプを選択します。特定のリソースを選択するか、Global を指定してすべてのリソースを選択できます。

  4. 2 番目のプルダウン メニューで、表示するログタイプを選択します(管理アクティビティの監査ログの場合は activity、データアクセス監査ログの場合は data_access、システム イベント ログの場合は system_events)。

    これらのオプションのいずれかが表示されない場合は、そのタイプの監査ログはプロジェクトで使用できません。

高度なビューア

GCP Console でログビューアの高度なインターフェースを使用して、監査ログエントリを取得できます。次の手順に沿って操作します。

  1. GCP Console の [Stackdriver Logging] > [ログ](ログビューア)ページに移動します。

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

  2. ページの上部で既存の GCP プロジェクトを選択するか、新しいプロジェクトを作成します。

  3. 最初のプルダウン メニューで、監査ログを表示するリソースタイプを選択します。特定のリソースを選択するか、Global を指定してすべてのリソースを選択できます。

  4. 検索フィルタ ボックスの右端にあるプルダウン矢印(▾)をクリックして、[高度なフィルタに変換] を選択します。

  5. 表示するログエントリをさらに指定するフィルタを作成します。プロジェクト内のすべての監査ログを取得するには、次のフィルタを追加します。それぞれのログ名の中で有効な [PRODUCT_ID] を指定します。

      logName = ("projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events"
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access")
    

    フィルタの詳細については、高度なログフィルタをご覧ください。

API

Stackdriver Logging API を使用して監査ログエントリを表示するには:

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

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

      {
        "resourceNames": [
          "projects/[PROJECT_ID]"
        ],
        "pageSize": 5,
        "filter": "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
      }
    
  3. [Execute] をクリックします。

フィルタの詳細については、高度なログフィルタをご覧ください。

SDK

Cloud SDK を使用してログエントリを読み取るには、次のコマンドを実行します。それぞれのログ名の中で有効な [PRODUCT_ID] を指定します。

gcloud logging read "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)

Cloud SDK の使用について詳しくは、ログエントリの読み取りをご覧ください。

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

GCP Console のプロジェクトの [アクティビティ] ページで、プロジェクト レベルの短縮された監査ログエントリを表示できます。[ホーム] > [アクティビティ] ページを参照してください。[フィルタ] を使用して、表示するエントリを選択します。実際の監査ログエントリには、[アクティビティ] ページに表示される情報よりも多くの情報が含まれている場合があります。

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

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

監査ログのエクスポート

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

監査ログエントリを Stackdriver Logging の外部にエクスポートするには、ログシンクを作成します。エクスポートする監査ログエントリを選択するフィルタをシンクに指定します。

詳細については、ログのエクスポートの概要をご覧ください。

監査ログの保持期間

個々の監査ログエントリは、一定期間保持され、その後削除されます。ログエントリの保持期間は、Logging の割り当てポリシーで説明されています。監査ログとそのエントリを、これ以外の方法で削除したり変更したりすることはできません。

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

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

監査ログのユーザー ID

監査ログには、ログに記録された操作を実行した ID が記録されます。ID は AuditLog オブジェクトの AuthenticationInfo フィールドに保持されます。

次の状況では、ID は利用できないか、特定できないように編集されます。

  • すべての監査ログ: プライバシー上の理由から、「アクセスが拒否されました」エラーとなるすべての読み取り専用オペレーションについて、主要メールアドレスが編集されます。

  • App Engine: ID はレガシー App Engine API から収集されません。

  • BigQuery: 現在、監査ログ内の ID と発信者 IP アドレスは特定できないように編集されます。ただし、次のいずれかの条件が満たされる場合はその限りでありません。

    • これは読み取り専用アクセスではありません。
    • ID はプロジェクトに属しているサービス アカウントです。
    • ID は、プロジェクトに関連付けられたドメインのメンバーです。

    このコンテキストのプロジェクト ドメインは、BigQuery の設定です。プロジェクトに関連付けられたドメインを変更したい場合は、BigQuery サポートにお問い合わせください

    プロジェクト間のアクセスに適用される追加のルールがあります。

    ここで、課金プロジェクトは要求を発行するプロジェクトであり、データ プロジェクトはリソースがジョブの実行中にもアクセスされるプロジェクトです。たとえば、データ プロジェクトからテーブルデータを読み込む課金プロジェクトのクエリジョブです。

    課金プロジェクトのリソース ID は、プロジェクトに同じドメインが関連付けられているか、同じ組織に属していない限り、データ プロジェクト ログから編集されます。

    上記のいずれかの条件または以下のいずれかが当てはまる場合を除いて、ID と発信者の IP アドレスはデータ プロジェクト ログから編集されます。

    • 課金プロジェクトとデータ プロジェクトが同じドメインに関連付けられているか、同じ組織内にあり、課金プロジェクトにすでに ID と発信者の IP アドレスが含まれています。
    • ID がプロジェクトでクエリを実行する権限を持ち、アクションは job.insert アクションです。

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

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

次の表は、管理アクティビティまたはデータアクセスの監査ログを書き込む Google Cloud Platform サービスを示しています。GA は、サービスに対してログタイプが一般的に利用可能であることを示します。ベータは、ログタイプが利用可能であるものの、下位互換性のない方法で変更される可能性があり、SLA または非推奨ポリシーの対象ではないことを示します。最終的には、すべての GCP サービスが監査ログを書き込むようになります。

Stackdriver Logging API サービス名の一覧については、サービスとリソースのマッピングをご覧ください。

データアクセス ログを有効にするには、データアクセス ログの構成をご覧ください。

監査ログを持つサービス 管理
アクティビティ
ログ
データ
アクセス
ログ
App Engine GA なし1
Application Identity4 ベータ版 なし1
BigQuery GA GA2
Cloud AutoML ベータ版 ベータ版
Cloud Bigtable ベータ版 なし1
Cloud Billing ベータ版 なし1
Cloud Composer GA なし1
Cloud Dataflow GA なし1
Cloud Dataproc GA GA
Cloud Datastore GA GA6
Cloud Deployment Manager GA GA
Cloud Data Loss Prevention GA GA
Cloud DNS GA GA
Cloud Functions ベータ版 ベータ版
Cloud Genomics ベータ版 ベータ版
Cloud Identity and Access Management GA GA
Cloud Identity-Aware Proxy なし3 GA
Cloud IoT Core GA GA
Cloud Key Management Service GA GA
Cloud Memorystore ベータ版 ベータ版
Cloud Machine Learning Engine ベータ版 ベータ版
Cloud Pub/Sub GA GA
Cloud Source Repositories GA GA
Cloud Spanner GA GA
Cloud SQL GA GA
Cloud Storage5 GA GA
Compute Engine GA GA
Compute Engine シリアルポート アクセス GA なし1
Container Analysis ベータ版 ベータ版
Cloud Build GA GA
Dialogflow GA GA
Google Kubernetes Engine GA GA
Service Management GA なし1
Resource Manager GA GA
Stackdriver Debugger GA GA
Stackdriver Error Reporting GA GA
Stackdriver Logging GA GA
Stackdriver Monitoring GA GA
Stackdriver Trace なし3 GA
Stackdriver Profiler なし3 ベータ版

1: このサービスではデータアクセス ログは生成されません。
2: BigQuery のデータアクセス ログはデフォルトで有効になっており、ログの割り当てにはカウントされません。
3: このサービスでは管理アクティビティ ログは生成されません。
4: OAuth 2.0 のクライアント ID とブランドを監査します。
5: リクエスト / レスポンスの情報はまだ含まれていません。
6: マネージド インポートまたはエクスポート オペレーションを開始するリクエストを監査します。監査には、それらのオペレーションのエンティティ固有の読み取り / 書き込みログは含まれません。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。