Azure VM 네트워크 인터페이스 연결 점검

유효한 NIC를 연결하고 서브넷·NSG·라우팅을 별도로 구성하세요.

설명

Azure VM은 네트워크 인터페이스를 통해 서브넷과 통신 경로에 연결됩니다. 필요한 NIC가 없으면 정상적으로 배포하거나 통신할 수 없습니다. NIC 연결만으로 NSG나 안전한 접근 규칙이 자동으로 구성되는 것은 아닙니다.

잠재적 영향

  • VM 배포 실패나 통신·관리 장애가 발생할 수 있습니다.
  • NIC만 연결하고 보안 규칙을 확인하지 않으면 의도하지 않은 접근이 허용될 수 있습니다.

해결 방법

  • network_interface_ids에 유효한 NIC를 연결하고 올바른 서브넷과 IP 구성을 준비하세요. 리소스 참조로 Terraform 의존 관계를 명확히 하세요.
  • NIC 또는 서브넷의 NSG와 라우팅을 검토하고 필요한 통신만 허용하세요. 별도로 관리자 인증도 보호하세요.

예시

기존 azurerm_virtual_machine의 네트워크 연결만 비교하는 발췌입니다. OS 디스크, 이미지와 자격 증명 설정은 생략했습니다. 남겨 둔 비밀번호 인증 허용은 별도 검토가 필요합니다.

변경 전

hcl
resource "azurerm_virtual_machine" "example" {
  name                  = "${var.prefix}-vm"
  location              = azurerm_resource_group.main.location
  resource_group_name   = azurerm_resource_group.main.name
  network_interface_ids = []
  vm_size               = "Standard_DS1_v2"

  os_profile_linux_config {
    disable_password_authentication = false
  }
}

변경 후

hcl
resource "azurerm_network_interface" "example" {
  name                = "${var.prefix}-nic"
  location            = azurerm_resource_group.main.location
  resource_group_name = azurerm_resource_group.main.name

  ip_configuration {
    name                          = "testconfiguration1"
    subnet_id                     = azurerm_subnet.internal.id
    private_ip_address_allocation = "Dynamic"
  }
}

resource "azurerm_virtual_machine" "example" {
  name                  = "${var.prefix}-vm"
  location              = azurerm_resource_group.main.location
  resource_group_name   = azurerm_resource_group.main.name
  network_interface_ids = [azurerm_network_interface.example.id]
  vm_size               = "Standard_DS1_v2"

  os_profile_linux_config {
    disable_password_authentication = false
  }
}

설명:

  • 변경 전: NIC 목록이 비어 있어 필요한 VM 네트워크 구성이 없습니다.
  • 변경 후: NIC를 만들고 VM에 연결합니다. NSG와 접근 규칙은 별도로 구성해야 합니다.

참조