このページでは、pgAudit によって生成された監査ログを表示する方法について説明します。この監査は、政府や行政機関、金融、ISO の証明書を遵守するために必要とされる多くのログの構成に役立ちます。このページでは、pgAudit のログ形式についても説明します。pgAudit の詳細については、pgAudit についてをご覧ください。
始める前に
監査ログを表示するには、次の操作を行う必要があります。
AlloyDB プロジェクトでデータアクセス監査ログを有効にする。
プライベート ログ閲覧者(
roles/logging.privateLogViewer
)のロールがあることを確認します。
監査ログの表示
特定のインスタンスに対して生成された 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。