説明
Azure PostgreSQL の接続制限機能は、同じ IP から誤ったパスワードで繰り返される接続試行を一時的に制限します。一般的な同時接続数の上限でも、すべてのサービス拒否攻撃を防ぐ機能でもありません。この保護がないと、繰り返される認証試行を抑えにくくなる場合があります。
想定される影響
- 誤ったパスワードによる接続の繰り返しを抑えにくくなる場合があります。
- 同じ IP を共有するクライアントは、認証失敗による一時制限で正常な接続にも影響を受ける場合があります。
対処方法
Flexible Server の connection_throttle.enable を on に設定し、認証失敗ログと実際の接続状態を確認してください。古いクライアント認証情報や過剰な再試行を修正してください。接続プールと同時接続数の上限は別途管理し、必要なネットワークアクセスだけを許可してください。
例
変更前は終了した Single Server の connection_throttling 設定です。変更後は既存の Flexible Server の現在のパラメーターを設定する例で、サーバーの作成や移行は含みません。
変更前
hcl
resource "azurerm_postgresql_configuration" "example" {
name = "connection_throttling"
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 = "connection_throttle.enable"
server_id = azurerm_postgresql_flexible_server.example.id
value = "on"
}
変更後は、同じ IP からパスワード認証が繰り返し失敗したときの一時制限を有効にします。許可する接続の総数を指定する設定ではありません。