説明
Cloud SQL PostgreSQL の pgAudit は、選択した SQL 操作を記録します。cloudsql.enable_pgaudit を有効にするだけでは設定は完了せず、拡張の作成と pgaudit.log による監査対象の指定が必要です。インスタンス管理操作の監査とは別の機能です。
想定される影響
- 必要な SQL 操作の記録がないと、データアクセスや変更を調査しにくくなる場合があります。
- 過剰な監査は、機密性のある SQL 内容、ディスク使用量、ログ料金を増やすおそれがあります。
対処方法
- 再起動の影響を計画し、
cloudsql.enable_pgauditをonにしてください。SQL クライアントで pgAudit 拡張を作成し、pgaudit.logで必要な操作の種類を指定してください。 - プロジェクトの Data Access 監査ログを有効にし、Cloud Logging で受信を確認してください。保持期間、アクセス権限、ディスク使用量も管理してください。
例
インスタンス設定の一部を比較する例です。サポートされるエンジンバージョンを使い、省略した必須設定を指定してください。このフラグ変更に、例にあるエンジンバージョンの変更が必要なわけではありません。
変更前
hcl
resource "google_sql_database_instance" "example" {
name = "postgres-instance-with-flag"
database_version = "POSTGRES_14"
region = "us-central1"
settings {
database_flags {
name = "cloudsql.enable_pgaudit"
value = "off"
}
}
}
変更後
hcl
resource "google_sql_database_instance" "example" {
name = "postgres-instance-with-flag"
database_version = "POSTGRES_15"
region = "us-central1"
settings {
database_flags {
name = "cloudsql.enable_pgaudit"
value = "on"
}
}
}
補足:
- 変更前: pgAudit の有効化フラグが無効です。他のすべてのサーバーログまで無効にする設定ではありません。
- 変更後: pgAudit の前提となるフラグを有効にします。拡張、監査対象、ログ受信は別途設定が必要です。