説明
接続ログは、接続試行や成功した認証・認可の記録から、誰がいつデータベースに接続したかを調べるために役立ちます。ログがないと、予期しない接続増加や不審なアクセスの傾向を追跡しにくくなる場合があります。接続ログは、すべてのクエリを記録する監査ログの代わりにはなりません。
想定される影響
- 不審な接続の傾向に気付くのが遅れる場合があります。
- 事故後に、どのアカウントがいつ接続したかを追跡しにくくなる場合があります。
対処方法
使用する PostgreSQL バージョンに対応する log_connections 設定で必要な接続イベントを記録してください。Flexible Server の適用値、ログ収集、保存期間を確認し、機密情報を含むログへのアクセスを制限してください。詳細なクエリ監査が必要なら別途構成してください。
例
変更前は終了した Single Server の構成です。変更後は log_connections の真偽値 on をサポートするバージョンの既存 Flexible Server を対象とした例です。
変更前
hcl
resource "azurerm_postgresql_configuration" "example" {
name = "log_connections"
resource_group_name = data.azurerm_resource_group.example.name
server_name = azurerm_postgresql_server.example.name
value = "OFF"
}
変更後
hcl
resource "azurerm_postgresql_flexible_server_configuration" "example" {
name = "log_connections"
server_id = azurerm_postgresql_flexible_server.example.id
value = "on"
}
変更後は接続ログを有効にします。アクセスを遮断する設定ではないため、認証と権限管理も別途維持してください。