Cloud SQL PostgreSQL の pgAudit 設定の確認

必要なデータベース操作を監査し、実際のログ受信を確認してください。

説明

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 の前提となるフラグを有効にします。拡張、監査対象、ログ受信は別途設定が必要です。

参考資料