説明
古い TLS プロトコルを許可すると、データベース接続の保護が弱まる場合があります。現在の Azure PostgreSQL Flexible Server は TLS 1.2 と TLS 1.3 に対応し、最小バージョンの既定値は TLS 1.2 です。終了した Single Server の構成を引き継ぐのではなく、現在のサービスの TLS 設定を確認する必要があります。
想定される影響
- 古いプロトコルを許可する環境では、通信のセキュリティ要件を満たせない場合があります。
- クライアントを確認せず最小バージョンを変更すると、必要な接続が失敗する場合があります。
対処方法
Flexible Server の require_secure_transport を on に維持し、ssl_min_protocol_version に対応する TLSv1.2 または TLSv1.3 を指定してください。クライアントの互換性とサーバー証明書の検証を確認してください。終了した Single Server は対応するサービスへ移行し、データ移行と接続の切り替えを別途計画してください。
例
変更前は、終了した Single Server で TLS 1.1 を許可していた過去の例です。現在のデプロイには使用しないでください。変更後は既存の Flexible Server の TLS パラメーターを二つ設定する例で、サーバーの移行手順ではありません。
変更前
hcl
resource "azurerm_postgresql_server" "example" {
name = "example-postgresql"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
sku_name = "GP_Gen5_4"
version = "11"
ssl_enforcement_enabled = true
ssl_minimal_tls_version_enforced = "TLS1_1"
}
変更後
hcl
resource "azurerm_postgresql_flexible_server_configuration" "require_tls" {
name = "require_secure_transport"
server_id = azurerm_postgresql_flexible_server.example.id
value = "on"
}
resource "azurerm_postgresql_flexible_server_configuration" "example" {
name = "ssl_min_protocol_version"
server_id = azurerm_postgresql_flexible_server.example.id
value = "TLSv1.2"
}
変更後は暗号化接続を要求し、最小 TLS バージョンを 1.2 に指定します。現在の既定値より高くする設定ではなく、クライアントによるサーバー証明書の検証も必要です。