AlloyDB for PostgreSQL の pgAudit によって生成された監査ログを表示する

このページでは、pgAudit によって生成された監査ログを表示する方法について説明します。この監査は、政府や行政機関、金融、ISO の証明書を遵守するために必要とされる多くのログの構成に役立ちます。このページでは、pgAudit のログ形式についても説明します。pgAudit の詳細については、pgAudit についてをご覧ください。

始める前に

監査ログを表示するには、次の操作を行う必要があります。

監査ログの表示

特定のインスタンスに対して生成された pgAudit ログは、データアクセス監査ログとして Cloud Logging に送信されます。

生成された pgAudit ログは、ログ エクスプローラ アプリケーションで表示できます。

pgAudit ログを表示するには、ログ エクスプローラ アプリケーションで cloudaudit.googleapis.com/data_access ログフィルタを選択します。

AlloyDB プロジェクトのすべての pgAudit ログを表示するには、高度なフィルタ インターフェースを使用して次のクエリを実行します。

resource.type="alloydb.googleapis.com/Instance"
logName="projects/your-project-name/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"

pgAudit のログ形式

データアクセス監査ログの各 pgAudit ログエントリには、クエリで収集された情報を表すフィールドが含まれています。これらのログエントリ フィールドの詳細については、pgAudit のドキュメントをご覧ください。

pgAudit ログエントリの例:

{
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    methodName: "alloydb.instances.query"
    request: {
      @type: "type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"
      auditClass: "READ"
      auditType: "SESSION"
      chunkCount: "1"
      chunkIndex: "1"
      command: "SELECT"
      database: "finance"
      databaseSessionId: 2209692
      parameter: "[not logged]"
      statement: "SELECT * FROM revenue"
      statementId: 2
      substatementId: 1
      user: "alice"
    }
  }
}

データアクセス監査ログに含まれるフィールドの説明は次のとおりです。

  • auditClass。ログに記録されるステートメントの種類です。有効な値は、READ、WRITE、FUNCTION、ROLE、DDL、MISC、MISC_SET です。
  • auditType。SESSION または OBJECT。
  • chunkCount。チャンクは、parameter フィールドと statement フィールドで提供されるデータに対して発生する可能性があります。chunkCount フィールドは、チャンクの合計数を示します。chunkIndex フィールドの説明もご覧ください。
  • chunkIndex。現在の request コンテナの parameter フィールドと statement フィールドにあるデータチャンクのインデックス番号を指定します。初期の番号は 1 です。chunkCount フィールドの説明もご覧ください。
  • command。たとえば、ALTER TABLE や SELECT などです。
  • パラメータ: chunkIndex フィールドは、このフィールドの内容を決定できます。chunkIndex フィールドの説明をご覧ください。pgaudit.log_parameter の値が設定されている場合、parameter フィールドには引用符付きの CSV データとしてステートメント パラメータを含めることができます。パラメータがない場合、このフィールドには [none] が含まれます。それ以外の場合、このフィールドには [not logged] が含まれます。
  • ステートメント。バックエンドで実行されるステートメント。chunkIndex フィールドは、statement フィールドの内容を決定できます。chunkIndex フィールドの説明をご覧ください。
  • statementId。このセッションの一意のステートメント ID。各ステートメント ID はバックエンド呼び出しを表します。一部のステートメントがログに記録されていない場合でも、ステートメント ID は順次となります。
  • substatementId。メイン ステートメント内の各サブステートメントの順次 ID。

次のステップ