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 を作成して接続します。NSG とアクセスルールは別途設定が必要です。

参考資料