監査ログ情報

このページでは、Cloud 監査ログの一部として Apigee ハイブリッドによって作成される監査ログについて説明します。

概要

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

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

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

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

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

データアクセス監査ログは、明示的に有効化された場合にのみ Apigee ハイブリッドで作成されます。データアクセス監査ログには、リソースの構成やメタデータを読み取る API 呼び出しが含まれます。データアクセス監査ログは、一般公開されているリソース(すべてのユーザーまたは認証済みのすべてのユーザーが利用可能)や、Google Cloud にログインせずにアクセスできるリソースのデータアクセス操作は記録しません。

Apigee ハイブリッドでは、システム イベント監査ログは記録されません。

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

次の表は、Apigee ハイブリッドの各監査ログタイプに対応する API オペレーションをまとめたものです。

監査ログのカテゴリ オペレーション
DATA_READ GET
LIST
ADMIN CREATE
UPDATE
DELETE

監査ログ形式

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

  • ログエントリ自体。LogEntry 型のオブジェクトです。 次のようなフィールドが有用です。
  • logName: プロジェクト ID と監査ログタイプ
  • resource: 監査対象オペレーションのターゲット
  • timeStamp: 監査対象オペレーションの日時
  • protoPayload: 監査情報
  • 監査ログデータ。ログエントリの protoPayload フィールドに保持される AuditLog オブジェクトです。
  • サービス固有の監査情報(省略可)。AuditLog オブジェクトの serviceData フィールドに保持されるサービス固有のオブジェクトです。詳細は、サービス固有の監査データをご覧ください。

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

ログ名

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

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

サービス名

Apigee ハイブリッド監査ログでは、サービス名 apigee.googleapis.com が使用されます。

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

リソースタイプ

Apigee ハイブリッド監査ログでは、すべての監査ログにリソースタイプ audited_resource が使用されます。

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

監査ログの有効化

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

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

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

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

監査ログに関する権限

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

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

  1. プロジェクト オーナープロジェクト編集者、またはプロジェクト閲覧者
  2. Logging のログ閲覧者ロール。
  3. カスタムの IAM ロールlogging.logEntries.list IAM 権限を含む)。

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

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

ログの表示

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

基本ビューア

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

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

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

  2. ページの上部で既存の Google Cloud プロジェクトを選択するか、新しいプロジェクトを作成します。
  3. 最初のプルダウン メニューで、監査ログを表示するリソースタイプを選択します。特定のリソース、またはすべてのリソースに対して Global を選択できます。
  4. 2 番目のプルダウン メニューで、表示するログの種類として、activity(管理アクティビティ監査ログ)、data_access(データアクセス監査ログ)、system_events(システム イベント監査ログ)を選択します。

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

高度なビューア

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

  1. GCP 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

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

  1. entries.list メソッドのドキュメント内の [この API を試す] セクションに移動します。
  2. [この 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. [実行] をクリックします。
クエリの詳細については、高度なログクエリをご覧ください。

gcloud

gcloud コマンドライン ツールを使用してログエントリを読み取るには、次のコマンドを実行します。それぞれのログ名の中で有効な [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 Storage、BigQuery、または Pub/Sub にエクスポートします。Pub/Sub を使用すると、他のアプリケーション、他のリポジトリ、サードパーティ製品にエクスポートできます。
  • 組織全体の監査ログを管理するには、組織内の一部またはすべてのプロジェクトからログをエクスポートできる集約エクスポート シンクを作成します。
  • 有効にしたデータアクセス監査ログが原因でプロジェクトのログ割り当て量を超過した場合は、データアクセス監査ログをエクスポートして Logging から除外できます。詳しくは、ログの除外をご覧ください。

料金

Stackdriver Logging の無効にできない監査ログ(すべての管理アクティビティ監査ログを含む)は無料です。

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