説明
MySQL サーバーが暗号化されていない接続を許可すると、認証情報やデータが転送中に漏えいするおそれがあります。内部ネットワークも TLS による保護の代わりにはなりません。現在の Flexible Server では、旧 Single Server の ssl_enforcement_enabled ではなく require_secure_transport を使用します。
想定される影響
- 暗号化されていない要求やクエリ結果を傍受・改ざんされるおそれがあります。
- 通信の暗号化要件を満たせない場合があります。
対処方法
Flexible Server の require_secure_transport を ON に維持してください。アプリケーションと運用ツールで TLS とサーバー証明書の検証を設定し、必要な接続が引き続き動作することを確認してください。ネットワークアクセスとデータベース権限も必要な範囲に制限してください。
例
変更前は、2025 年に終了した Single Server の過去の構成です。現在のデプロイには使用しないでください。変更後は既存の Flexible Server に適用する TLS パラメーター設定で、サーバーの移行手順は別途準備する必要があります。
変更前
hcl
resource "azurerm_mysql_server" "example" {
name = "webflux-mysql-${var.environment}${random_integer.rnd_int.result}"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
administrator_login = "webflux-${var.environment}"
administrator_login_password = random_string.password.result
sku_name = "B_Gen5_2"
storage_mb = 5120
version = "5.7"
auto_grow_enabled = true
backup_retention_days = 7
infrastructure_encryption_enabled = true
public_network_access_enabled = true
ssl_enforcement_enabled = false
}
変更後
hcl
resource "azurerm_mysql_flexible_server_configuration" "example" {
name = "require_secure_transport"
resource_group_name = azurerm_resource_group.example.name
server_name = azurerm_mysql_flexible_server.example.name
value = "ON"
}
変更前は SSL 接続を必須にしていません。変更後は現在のサーバーで暗号化接続を要求します。クライアントによるサーバー証明書の検証も維持してください。