Azure MSSQL Server 공용 네트워크 접근 점검

데이터베이스에 필요한 연결 경로를 확인하고 불필요한 공용 접근을 제한하세요.

설명

Azure MSSQL Server에서 공용 네트워크 접근을 허용하면 공용 엔드포인트를 통한 데이터베이스 연결 경로가 열립니다. 방화벽 규칙까지 광범위하게 허용되어 있으면 불필요한 외부 연결 시도가 가능해질 수 있습니다.

공용 엔드포인트가 활성화되어도 누구나 데이터베이스를 읽을 수 있는 것은 아닙니다. 방화벽, 인증과 데이터베이스 권한이 적용됩니다.

잠재적 영향

  • 접근이 필요 없는 외부 클라이언트의 연결·로그인 시도가 가능해질 수 있습니다.
  • 유출된 자격 증명이나 잘못된 권한 설정이 악용될 때 네트워크 제한의 보호 효과가 줄어들 수 있습니다.

해결 방법

비공개 연결만 필요한 경우 프라이빗 엔드포인트, DNS와 클라이언트 경로를 구성·시험한 뒤 public_network_access_enabled를 false로 설정하세요. 공용 연결이 필요한 경우 방화벽 허용 범위를 실제 필요한 클라이언트로 제한하세요. 강한 인증과 최소 데이터 권한을 적용하고 변경 후 애플리케이션 접속을 확인하세요.

예시

같은 SQL 서버의 네트워크 설정을 변경하는 발췌입니다. 프라이빗 엔드포인트와 DNS는 생략했습니다. 공개된 예시 암호를 운영에서 사용하지 말고 보호된 입력으로 관리하세요.

변경 전

hcl
resource "azurerm_mssql_server" "app_db" {
  name                         = "mssqlserver"
  resource_group_name          = azurerm_resource_group.example.name
  location                     = azurerm_resource_group.example.location
  version                      = "12.0"
  administrator_login          = "mradministrator"
  administrator_login_password = "thisIsDog11"
}

공용 네트워크 접근을 명시적으로 끄지 않습니다. 실제 허용된 출발지는 서버의 방화벽 규칙으로 확인하세요.

변경 후

hcl
resource "azurerm_mssql_server" "app_db" {
  name                         = "mssqlserver"
  resource_group_name          = azurerm_resource_group.example.name
  location                     = azurerm_resource_group.example.location
  version                      = "12.0"
  administrator_login          = "mradministrator"
  administrator_login_password = "thisIsDog11"
  public_network_access_enabled = false
}

공용 네트워크 접근을 비활성화합니다. 애플리케이션이 준비된 비공개 경로로 연결할 수 있어야 합니다.

참조