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

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

概要

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

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

Cloud Audit Logging では、GCP のプロジェクト、フォルダ、組織ごとに次の 3 つの監査ログが維持されます。

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

Resource Manager は、システム イベントの監査ログを書き込みます。このログには、Compute Engine によって実行されたシステム イベントのログエントリが記録されます。Resource Manager はデフォルトでこれらのログを提供します。

Resource Manager は、管理アクティビティ(リソースの構成やメタデータを変更するオペレーションなど)の監査ログをデフォルトで書き込んで提供します。

Resource Manager はデータアクセスの監査ログを書き込みますが、デフォルトでは提供しません。このログには、ユーザー提供データの作成、変更、読み取りを行う API 呼び出しが記録されます。

データアクセス監査ログは、次のようなカテゴリに分類されます。

  • データアクセス(ADMIN_READ): リソースの構成やメタデータを読み取るオペレーション。

    Resource Manager はデフォルトで管理読み取り情報を提供します。

  • データアクセス(DATA_READ): ユーザー提供データをリソースから読み取るオペレーション。

    Resource Manager はデフォルトではデータ読み取り情報を提供しません。

  • データアクセス(DATA_WRITE): ユーザー提供データをリソースに書き込むオペレーション。

    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 Platform Console の [GCP プライバシーとセキュリティ] ページで変更できます。

監査ログ形式

Stackdriver Logging でログビューア、Stackdriver Logging API、または Cloud SDK を使用して表示できる監査ログエントリには、次のオブジェクトがあります。

  • ログエントリ自体。これは LogEntry 型のオブジェクトです。次のようなフィールドが有用です。

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

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

これらのオブジェクトの他のフィールドとその内容の例、オブジェクト内の情報に対するクエリの例については、監査ログのデータ型をご覧ください。

ログ名

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

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 のデータアクセス監査ログです。これはデフォルトで有効で、無効にすることはできません。BigQuery のデータアクセス ログは、プロジェクトのロギングの割り当てにはカウントされません。

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

構成したデータアクセス ログは、Stackdriver のログの料金に影響する可能性があります。このページの料金セクションをご覧ください。

監査ログに関する権限

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

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

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

システム イベントログを表示するには、その監査ログが存在するプロジェクト内で次のいずれかの Cloud IAM の役割を持っている必要があります。

組織などのプロジェクト以外のエンティティで記録された監査ログを使用する場合は、プロジェクトの役割を適切な組織の役割に変更します。

ログの表示

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

基本ビューア

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
          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 の使用について詳しくは、ログエントリの読み取りをご覧ください。

サンプルの監査ログエントリを表示して、監査ログエントリに記述されている最も重要な情報を見つけるには、監査ログについてをご覧ください。

監査ログのエクスポート

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

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

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

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

料金

Stackdriver Logging のデフォルトで有効になっている監査ログ(すべての管理アクティビティ ログとシステム イベントログを含む)は無料です。

明示的にリクエストされるデータアクセス ログについては課金されます。

ログ(監査ログを含む)の料金の詳細については、Stackdriver の料金をご覧ください。

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

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

Resource Manager のドキュメント