説明
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 の接続ログを有効にします。実際の配信と利用可能性を確認してください。