Azure中使用Terraform配置机密VM安全类型的问题
解决Terraform创建Azure AMD SEV机密VM的安全类型配置问题
核心配置修正
要成功创建Azure机密VM(如Standard_DC2as_v5规格),必须在azurerm_linux_virtual_machine资源的根级别设置security_type = "Confidential"——这就是Azure GUI中"Security type"设为Confidential对应的Terraform配置项。之前的问题在于漏设了这个顶层参数,反而尝试在os_disk块中添加不兼容的参数。
正确配置示例
resource "azurerm_linux_virtual_machine" "confidential_vm" { name = "school-project-cvm" resource_group_name = azurerm_resource_group.your_rg.name location = azurerm_resource_group.your_rg.location size = "Standard_DC2as_v5" admin_username = "ubuntu" network_interface_ids = [ azurerm_network_interface.your_nic.id, ] # 关键配置:指定安全类型为机密 security_type = "Confidential" os_disk { caching = "ReadWrite" storage_account_type = "Premium_LRS" # 机密VM默认支持平台托管加密,无需额外配置加密类型;若需自定义加密,可关联磁盘加密集 } source_image_reference { publisher = "Canonical" offer = "0001-com-ubuntu-confidential-vm-focal" sku = "20_04-lts-cvm" version = "latest" } admin_ssh_key { username = "ubuntu" public_key = file("~/.ssh/id_rsa.pub") } }
关键说明
security_type是azurerm_linux_virtual_machine的顶层参数,不属于os_disk块,必须显式设置为"Confidential"才能匹配机密VM规格的强制要求。- 你尝试添加的
security_encryption_type属于独立的azurerm_managed_disk资源参数,不适用于azurerm_linux_virtual_machine的os_disk块,因此会触发"参数不被支持"的报错。 - 确认源镜像的sku正确:Canonical的Ubuntu 20.04机密镜像sku为
20_04-lts-cvm,需与offer字段严格对应。
错误原因复盘
- 未设置
security_type时,默认值为<NULL>,而Standard_DC2as_v5这类机密VM规格不允许安全类型为NULL,因此触发"VM规格不支持安全类型"的报错。 - 错误地在os_disk块中使用了不属于该块的参数,导致配置不兼容。
内容的提问来源于stack exchange,提问作者Kabuto
相关产品推荐
相关产品推荐

