Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

Firebase Management の監査ログ

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

概要

Firebase サービスは、「誰がいつどこで何をしたか」を調べるために役立つ監査ログを記録します。これは Cloud Audit Logs であり、Firebase プロジェクトに接続されている Google Cloud プロジェクトの一部として提供されます。各 Firebase プロジェクトで記録されるのは、そのプロジェクト内に直接存在するリソースの監査ログのみです。

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

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

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

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

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

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

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

Firebase Management の各監査ログタイプに対応する API オペレーションの概要は、次のとおりです。

監査ログのカテゴリFirebase Management のオペレーション
プロジェクトのオペレーション
管理アクティビティ AddFirebase
UpdateFirebaseProject
FinalizeDefaultLocation
データアクセス(ADMIN_READ) GetFirebaseProject
ListAvailableLocations
GetAdminSdkConfig
SearchFirebaseApps
iOS アプリのオペレーション
管理アクティビティ CreateIosApp
UpdateIosApp
データアクセス(ADMIN_READ) GetIosApp
ListIosApps
GetIosAppConfig
Android アプリのオペレーション
管理アクティビティ CreateAndroidApp
UpdateAndroidApp
CreateShaCertificate
DeleteShaCertificate
データアクセス(ADMIN_READ) GetAndroidApp
ListAndroidApps
GetAndroidAppConfig
ListShaCertificates
ウェブアプリのオペレーション
管理アクティビティ CreateWebApp
UpdateWebApp
データアクセス(ADMIN_READ) GetWebApp
ListWebApps
GetWebAppConfig

監査ログ形式

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

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

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

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

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

ログ名

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

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

サービス名

Firebase Management 監査ログでは、サービス名 firebase.googleapis.com が使用されます。

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

リソースタイプ

Firebase Management の監査ログでは、すべての監査ログにリソースタイプ audited_resource が使用されます。

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

監査ログの有効化

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

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

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

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

監査ログに関する権限

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

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

  • プロジェクト オーナープロジェクト編集者、またはプロジェクト閲覧者
  • Logging のログ閲覧者のロール。
  • カスタム Cloud IAM ロールlogging.logEntries.list Cloud 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
          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] フォームのリクエストの本文に、次のコードを入力します。この事前入力されたフォームをクリックするとリクエストの本文が自動的に入力されますが、それぞれのログ名に有効な [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. [実行] をクリックします。

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

SDK

Cloud SDK を使用してログエントリを読み取るには、次のコマンドを実行します。それぞれのログ名の中で有効な [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)"

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

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

監査ログのエクスポート

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

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

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

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

料金

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

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