Azure PostgreSQL の最小 TLS バージョン設定の確認

対応する TLS バージョンとサーバー証明書の検証で PostgreSQL 接続を保護してください。

説明

古い 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 に指定します。現在の既定値より高くする設定ではなく、クライアントによるサーバー証明書の検証も必要です。

参考資料