Cloud SQL PostgreSQL の接続ログ設定の確認

必要な接続履歴を収集し、実際の配信と保持を確認してください。

説明

PostgreSQL の log_connections は、接続試行と成功した認証・認可を記録するために使います。必要な接続履歴がないと、不審なアクセスや運用障害を調査しにくくなる場合があります。

SQL 文の監査とは別の機能であり、off でもすべての認証失敗やエラーログが消えるわけではありません。

想定される影響

  • 接続した主体や時刻を確認する資料が不足するおそれがあります。
  • 接続障害や不審な活動の原因調査に時間がかかる場合があります。

対処方法

  • 使用する PostgreSQL バージョンがサポートする log_connections の形式で、必要な接続記録を有効にしてください。例の PostgreSQL 15 では on を使います。
  • ログの受信を確認し、必要な保持期間とアクセス権限を設定してください。ログ量と機密情報を確認し、SQL 監査が必要なら別途設定を検討してください。

例

インスタンス設定の一部を示す例です。サポートされるエンジンバージョンとマシンタイプを選び、省略した必須設定を用意してください。

変更前

hcl
resource "google_sql_database_instance" "db" {
  name             = "postgres-instance"
  database_version = "POSTGRES_15"
  region           = "us-central1"

  settings {
    database_flags {
      name  = "log_connections"
      value = "off"
    }
  }
}

変更後

hcl
resource "google_sql_database_instance" "db" {
  name             = "postgres-instance"
  database_version = "POSTGRES_15"
  region           = "us-central1"

  settings {
    tier = "db-f1-micro"

    database_flags {
      name  = "log_connections"
      value = "on"
    }
  }
}

補足:

  • 変更前: 接続ログを無効にします。他のすべてのエラーログまで無効にするわけではありません。
  • 変更後: PostgreSQL 15 の接続ログを有効にします。実際の配信と利用可能性を確認してください。

参考資料