Resource Manager の監査ロギングの情報

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

概要

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

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

Cloud Audit Logging は、Cloud プロジェクト、フォルダ、組織ごとに 3 つの監査ログを保持します。

  • 管理アクティビティ監査ログ
  • データアクセス監査ログ
  • システム イベント監査ログ

Resource Manager は、管理アクティビティの監査ログを書き込みます。このログには、リソースの構成やメタデータを変更するオペレーションが記録されます。管理アクティビティ監査ログは無効にできません。

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

Resource Manager では、システム イベント監査ログは記録されません。

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

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

監査ログのカテゴリ Resource Manager のオペレーション
管理アクティビティ ログ(ADMIN_WRITE)
  • UpdateContactInfo

v2beta1:

  • cloudresourcemanager.v2beta1.folders.create
  • cloudresourcemanager.v2beta1.folders.delete
  • cloudresourcemanager.v2beta1.folders.move
  • cloudresourcemanager.v2beta1.folders.patch
  • cloudresourcemanager.v2beta1.folders.setIamPolicy
  • cloudresourcemanager.v2beta1.folders.undelete

v2:

  • cloudresourcemanager.v2.folders.create
  • cloudresourcemanager.v2.folders.delete
  • cloudresourcemanager.v2.folders.move
  • cloudresourcemanager.v2.folders.patch
  • cloudresourcemanager.v2.folders.setIamPolicy
  • cloudresourcemanager.v2.folders.undelete

v1beta1:

  • cloudresourcemanager.v1beta1.organizations.setIamPolicy
  • cloudresourcemanager.v1beta1.organizations.update
  • cloudresourcemanager.v1beta1.projects.create
  • cloudresourcemanager.v1beta1.projects.delete
  • cloudresourcemanager.v1beta1.projects.setIamPolicy
  • cloudresourcemanager.v1beta1.projects.undelete
  • cloudresourcemanager.v1beta1.projects.update

v1:

  • cloudresourcemanager.v1.folders.clearOrgPolicy
  • cloudresourcemanager.v1.folders.setOrgPolicy
  • cloudresourcemanager.v1.organizations.clearOrgPolicy
  • cloudresourcemanager.v1.organizations.setIamPolicy
  • cloudresourcemanager.v1.organizations.setOrgPolicy
  • cloudresourcemanager.v1.projects.clearOrgPolicy
  • cloudresourcemanager.v1.projects.create
  • cloudresourcemanager.v1.projects.delete
  • cloudresourcemanager.v1.projects.setIamPolicy
  • cloudresourcemanager.v1.projects.setOrgPolicy
  • cloudresourcemanager.v1.projects.undelete
  • cloudresourcemanager.v1.projects.update
データアクセス ログ(ADMIN_READ)
  • GetContactInfo

v2beta1:

  • cloudresourcemanager.v2beta1.folders.get
  • cloudresourcemanager.v2beta1.folders.getIamPolicy
  • cloudresourcemanager.v2beta1.folders.list

v2:

  • cloudresourcemanager.v2.folders.get
  • cloudresourcemanager.v2.folders.getIamPolicy
  • cloudresourcemanager.v2.folders.list

v1beta1:

  • cloudresourcemanager.v1beta1.organizations.get
  • cloudresourcemanager.v1beta1.organizations.getIamPolicy
  • cloudresourcemanager.v1beta1.projects.get
  • cloudresourcemanager.v1beta1.projects.getIamPolicy

v1:

  • cloudresourcemanager.v1.folders.getEffectiveOrgPolicy
  • cloudresourcemanager.v1.folders.getOrgPolicy
  • cloudresourcemanager.v1.folders.listAvailableOrgPolicyConstraints
  • cloudresourcemanager.v1.folders.listOrgPolicies
  • cloudresourcemanager.v1.organizations.get
  • cloudresourcemanager.v1.organizations.getEffectiveOrgPolicy
  • cloudresourcemanager.v1.organizations.getIamPolicy
  • cloudresourcemanager.v1.organizations.getOrgPolicy
  • cloudresourcemanager.v1.organizations.listAvailableOrgPolicyConstraints
  • cloudresourcemanager.v1.organizations.listOrgPolicies
  • cloudresourcemanager.v1.projects.get
  • cloudresourcemanager.v1.projects.getEffectiveOrgPolicy
  • cloudresourcemanager.v1.projects.getIamPolicy
  • cloudresourcemanager.v1.projects.listAvailableOrgPolicyConstraints
  • cloudresourcemanager.v1.projects.listOrgPolicies

GetContactInfo オペレーションと UpdateContactInfo オペレーションは、EU の一般データ保護規制(GDPR)用に ContactInfo サービスをサポートしています。これらのオペレーションにより、EU 担当者とデータ保護オフィサーの連絡先情報が更新および取得されます。これらの情報は、Google Cloud Console の [Google Cloud のプライバシーとセキュリティ] ページで変更できます。

監査ログ形式

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

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

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

  • サービス固有の監査情報(省略可)。AuditLog オブジェクトの serviceData フィールドに保持されるサービス固有のオブジェクトです。詳細は、サービス固有の監査データをご覧ください。

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

ログ名

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

projects/project-id/logs/cloudaudit.googleapis.com%2Factivity
organizations/organization-id/logs/cloudaudit.googleapis.com%2Fdata_access

サービス名

Resource Manager 監査ログでは、サービス名 cloudresourcemanager.googleapis.com が使用されます。

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

リソースタイプ

Resource Manager の監査ログでは、すべての監査ログに対してリソースタイプ project が使用されます。

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

監査ログの有効化

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

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

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

データアクセス監査ログを構成すると、Cloud Logging のログの料金に影響が及ぶ場合があります。このページの料金を確認してください。

監査ログに関する権限

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

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

  • プロジェクト オーナー、プロジェクト編集者、またはプロジェクト閲覧者。
  • ロギングのログ閲覧者のロール。
  • カスタムの Cloud IAM ロールlogging.logEntries.list Cloud IAM 権限が付与されていること)。

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

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

ログの表示

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

監査ログ名は次のようになります。名前には、Cloud プロジェクト、フォルダ、または組織の識別子の変数が含まれています。クエリを作成するときは、変数を有効な値に置き換えてください。たとえば、クエリに project-id が含まれている場合、指定するプロジェクト識別子は、現在選択された 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

次の例では、プロジェクト レベルのクエリを使用しています。組織レベルまたはフォルダ レベルで監査ログを表示する場合は、監査ログ名にリストに記載されている適切なフォルダ レベルまたは組織レベルの監査ログ名または ID を代わりに使用します。

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

コンソール

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

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

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

  2. [以前のバージョン] から [新しいログビューアのプレビュー] を選択します。

  3. 既存の クラウド プロジェクトを選択します。

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

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

    • [ログ名] から、表示する監査ログの種類を選択します。

    • 管理アクティビティ監査ログの場合は、activity を選択します。

    • データアクセス監査ログの場合は、data_access を選択します。

    • システム イベント監査ログの場合は、system_events を選択します。

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

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

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"
    }
    
  3. [実行] をクリックします。

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

gcloud

Cloud SDK には、コマンドのグループである gcloud logging があり、Cloud Logging API にコマンドライン インターフェースを提供します。ログエントリを読み取るには、次のコマンドを実行します。それぞれのログ名の中で有効な project-id を指定します。

gcloud logging read "logName : projects/project-id/logs/cloudaudit.googleapis.com"

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

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

監査ログのエクスポート

監査ログは、他の種類のログと同じ方法でエクスポートできます。ログのエクスポート方法の詳細については、ログのエクスポートをご覧ください。監査ログのエクスポートに関する応用例の一部を以下に示します。

  • 監査ログを長期間保持する、またはより強力な検索機能を使用するには、監査ログのコピーを Cloud Storage、BigQuery、または Pub/Sub にエクスポートします。Pub/Sub を使用すると、他のアプリケーション、他のリポジトリ、サードパーティ製品にエクスポートできます。

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

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

料金

Cloud Logging の無効にできない監査ログ(すべての管理アクティビティ監査ログを含む)は無料です。 明示的にリクエストしたデータアクセス監査ログについては課金されます。

監査ログの料金の詳細については、Google Cloud のオペレーション スイート料金をご覧ください。