説明
Azure MariaDB の公開ネットワークアクセスが有効な場合、ファイアウォールで許可されたクライアントは公開経路から接続できます。データへのアクセスには認証とデータベース権限も必要ですが、広すぎるファイアウォール規則や弱いアカウント保護はリスクを高めます。
Azure Database for MariaDB は 2025年9月19日に提供を終了しました。以下は既存構成を確認するための説明です。サポート対象のデータベースサービスへ移行し、必要なネットワーク制御を適用してください。
想定される影響
- 許可された外部クライアントから、パスワードの推測や脆弱性を悪用する試行を受ける可能性があります。
- アカウントの侵害や過剰な権限によって、データの読み取りや変更につながるおそれがあります。
対処方法
- サポート対象のサービスへの移行を優先し、移行先のファイアウォール、TLS、アカウント権限を確認してください。
- 公開アクセスが不要なら、移行先が対応するプライベート接続と DNS を先に構成し、アプリケーションの接続を試験してから公開アクセスを無効にしてください。
- 旧 MariaDB 構成では
public_network_access_enabled = falseが公開アクセスを無効にする設定でした。管理者の公開 IP を限定して許可することは、プライベート接続とは異なります。
例
提供終了したサービスのネットワークオプションを比較する既存の抜粋です。新規デプロイの例ではなく、SKU、バージョン、TLS などの必須設定は省略しています。パスワードはコードに保存せず安全に供給し、Terraform の状態も保護してください。
変更前
hcl
resource "azurerm_mariadb_server" "app_db" {
name = "example-mariadb-server"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
administrator_login = "mariadbadmin"
administrator_login_password = var.administrator_password
public_network_access_enabled = true
}
公開ネットワークアクセスを許可します。実際の接続にはファイアウォールと認証の条件も適用されます。
変更後
hcl
resource "azurerm_mariadb_server" "app_db" {
name = "example-mariadb-server"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
administrator_login = "mariadbadmin"
administrator_login_password = var.administrator_password
public_network_access_enabled = false
}
公開アクセスを無効にするオプションです。この設定だけではプライベートエンドポイントや DNS は作成されません。