Cloud 監査ログ

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

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

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

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

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

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

データアクセス監査ログ

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

これらのログを表示するには、Cloud IAM 役割 Logging / プライベート ログビューアまたはプロジェクト / オーナーが必要です。

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

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

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

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

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

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

監査ログエントリの構造

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

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

監査ログの表示

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

監査ログ名は次のとおりです。

   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

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

基本ビューア

Cloud Console のログビューアの基本インターフェースを使用して、監査ログエントリを取得できます。次の手順に従います。

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

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

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

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

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

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

高度なビューア

Cloud Console のログビューアの高度なインターフェースを使用することで、監査ログエントリを取得できます。次の手順に従います。

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

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

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

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

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

  5. 表示するログエントリをさらに指定するクエリを作成します。プロジェクト内のすべての監査ログを取得するには、次のクエリを追加します。それぞれのログ名の中で有効な [PROJECT_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

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%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
      }
    
  3. [Execute] をクリックします。

クエリの詳細については、高度なログクエリをご覧ください。

GCLOUD

Cloud SDK には、コマンドのグループである gcloud logging があり、Stackdriver Logging API にコマンドライン インターフェースを提供します。ログエントリを読み取るには、次のコマンドを実行します。それぞれのログ名の中で有効な [PROJECT_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)

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

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

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

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

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

監査ログのエクスポート

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

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

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

監査ログの保持期間

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

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

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

監査ログの呼び出し元 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 サービスが監査ログを提供するようになります。