このページでは、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 などです。
- parameter。このフィールドの内容は、
chunkIndexフィールドによって決まる場合があります。chunkIndexフィールドの説明をご覧ください。pgaudit.log_parameter の値が設定されている場合、parameterフィールドには引用符付きの CSV データとしてステートメント パラメータを含めることができます。パラメータがない場合、このフィールドには[none]が含まれます。それ以外の場合、このフィールドには[not logged]が含まれます。 - statement。バックエンドで実行されるステートメント。
statementフィールドの内容は、chunkIndexフィールドによって決まる場合があります。chunkIndexフィールドの説明をご覧ください。 - statementId。このセッションの一意のステートメント ID。各ステートメント ID はバックエンド呼び出しを表します。一部のステートメントがログに記録されていない場合でも、ステートメント ID は順次となります。
- substatementId。メイン ステートメント内の各サブステートメントの順次 ID。