이전 Azure MySQL Server 공용 네트워크 접근 점검

MySQL 연결 경로와 방화벽을 제한하고 지원되는 서비스로 이전하세요.

설명

Azure MySQL Server의 공용 네트워크 접근이 활성화되어 있고 방화벽도 넓게 허용하면 불필요한 외부 연결 시도가 가능해질 수 있습니다. 네트워크 접근 가능 여부와 데이터베이스 인증·권한은 별도로 관리해야 합니다.

azurerm_mysql_server는 2024년 9월 16일에 종료된 Azure Database for MySQL Single Server의 이전 리소스입니다. 현재 구성은 Flexible Server로 이전하면서 해당 서비스의 네트워크 설정을 검토해야 합니다.

잠재적 영향

  • 승인되지 않은 외부 출발지의 연결 및 로그인 시도가 늘어날 수 있습니다.
  • 지원이 종료된 서비스의 설정에 계속 의존하면 보안 유지와 운영 복구가 어려워질 수 있습니다.

해결 방법

지원되는 MySQL Flexible Server로 이전할 때 필요한 비공개 경로와 DNS를 먼저 구성·시험하고 불필요한 공용 접근을 비활성화하세요. 공용 연결이 필요하면 실제 클라이언트 주소만 방화벽에서 허용하세요. 이전 Single Server 설정을 유지보수할 때는 public_network_access_enabled=false의 영향과 연결 경로를 확인하세요. 인증과 데이터 권한도 별도로 제한하세요.

예시

네트워크 옵션을 보여 주는 이전 Single Server 발췌입니다. SKU, 버전 등 다른 필수 설정은 생략했습니다. 현재 신규 배포 예제로 사용하지 마세요. 예시 암호는 운영에서 사용하지 마세요.

변경 전

hcl
resource "azurerm_mysql_server" "app_db" {
  name                = "example-mysqlserver"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name

  administrator_login          = "mysqladminun"
  administrator_login_password = "H@Sh1CoR3!"
}

이전 서버의 공용 네트워크 접근을 명시적으로 비활성화하지 않은 구성입니다.

변경 후

hcl
resource "azurerm_mysql_server" "app_db" {
  name                         = "example-mysqlserver"
  location                     = azurerm_resource_group.example.location
  resource_group_name          = azurerm_resource_group.example.name
  administrator_login          = "mysqladminun"
  administrator_login_password = "H@Sh1CoR3!"
  public_network_access_enabled = false
}

이전 서버에서 public_network_access_enabled를 false로 설정합니다. Flexible Server에서는 해당 리소스가 지원하는 네트워크 옵션과 이전 절차를 사용하세요.

참조