설명
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, 버전 등 다른 필수 설정은 생략했습니다. 현재 신규 배포 예제로 사용하지 마세요. 예시 암호는 운영에서 사용하지 마세요.
변경 전
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!"
}
이전 서버의 공용 네트워크 접근을 명시적으로 비활성화하지 않은 구성입니다.
변경 후
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에서는 해당 리소스가 지원하는 네트워크 옵션과 이전 절차를 사용하세요.