使用 Terraform 使用 azurerm_disk_encryption_set 预配 Azure VM 时出错

问题描述 投票:0回答:1

目标是使用 Azure 磁盘加密为虚拟机启用磁盘加密。但是,我不断遇到错误,并且无法解决它。

错误:等待创建磁盘加密集时出错 “示例磁盘加密集”(资源组“示例资源”): Code="DiskEncryptionSetCreationFailed" Message="磁盘加密设置 “示例磁盘加密集”创建失败。”

类似这样的事情

我使用链接作为参考

azure virtual-machine azure-keyvault terraform-provider-azure
1个回答
0
投票

我尝试使用 Terraform 为 Azure VM 预配 azurerm_disk_encryption_set,我能够成功预配该要求。

由于您提供了查询中共享的链接,如果您使用的代码也相同,则有多种原因,这表明在 Azure 中创建磁盘加密集时出现问题。 Azure 磁盘加密使用磁盘加密集来管理虚拟机磁盘的加密。

  • 确保您的
    Azure policies
    role-based access control (RBAC)
    分配限制您创建磁盘加密集的能力。这些策略可以限制您的 Azure 订阅中的特定操作。
  • Azure 磁盘加密集可能依赖于其他资源,例如密钥保管库或虚拟网络。确保这些资源已正确配置、可访问以及在资源组中创建磁盘加密集的权限。
  • 如果使用 Azure PowerShell 或 Azure CLI 创建磁盘加密集,请确保使用最新版本的工具。旧版本可能存在兼容性问题,并检查是否有拼写错误。

我的地形配置:

data "azurerm_client_config" "current" {}

data "azurerm_resource_group" "example" {
  name     = "v-sakavya"
  
}

resource "azurerm_key_vault" "example" {
  name                        = "desvksb-example-keyvault"
  location                    = data.azurerm_resource_group.example.location
  resource_group_name         = data.azurerm_resource_group.example.name
  tenant_id                   = data.azurerm_client_config.current.tenant_id
  sku_name                    = "premium"
  enabled_for_disk_encryption = true
  purge_protection_enabled    = true
}

resource "azurerm_key_vault_key" "example" {
  name         = "des-example-keyvksb"
  key_vault_id = azurerm_key_vault.example.id
  key_type     = "RSA"
  key_size     = 2048

  depends_on = [
    azurerm_key_vault_access_policy.example-user
  ]

  key_opts = [
    "decrypt",
    "encrypt",
    "sign",
    "unwrapKey",
    "verify",
    "wrapKey",
  ]
}

resource "azurerm_disk_encryption_set" "example" {
  name                = "des"
  resource_group_name = data.azurerm_resource_group.example.name
  location            = data.azurerm_resource_group.example.location
  key_vault_key_id    = azurerm_key_vault_key.example.id

  identity {
    type = "SystemAssigned"
  }
}

resource "azurerm_key_vault_access_policy" "example-disk" {
  key_vault_id = azurerm_key_vault.example.id

  tenant_id = azurerm_disk_encryption_set.example.identity.0.tenant_id
  object_id = azurerm_disk_encryption_set.example.identity.0.principal_id

  key_permissions = [
    "Create",
    "Delete",
    "Get",
    "Purge",
    "Recover",
    "Update",
    "List",
    "Decrypt",
    "Sign",
  ]
}

resource "azurerm_key_vault_access_policy" "example-user" {
  key_vault_id = azurerm_key_vault.example.id

  tenant_id = data.azurerm_client_config.current.tenant_id
  object_id = data.azurerm_client_config.current.object_id

  key_permissions = [
    "Create",
    "Delete",
    "Get",
    "Purge",
    "Recover",
    "Update",
    "List",
    "Decrypt",
    "Sign",
    "GetRotationPolicy",
  ]
}

resource "azurerm_role_assignment" "example-disk" {
  scope                = azurerm_key_vault.example.id
  role_definition_name = "Key Vault Crypto Service Encryption User"
  principal_id         = azurerm_disk_encryption_set.example.identity.0.principal_id
}

输出:

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.