azurerm_key_vault_access_policy在使用azurerm Provider 2.99.0成功部署后创建

iaqfqrcu  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(89)

我试图创建访问策略KV在不同的状态,但需要APIM身份,用户管理的身份
它正在成功地创建访问策略,并且在下一次运行时再次创建,因为它已经处于terraform状态,但会再次重新创建它

holgip5t

holgip5t1#

我们多次尝试配置azurerm_key_vault_access_policy,但状态不允许每次使用更新的Azure提供程序配置新策略。
在这里,我试图复制场景,并检查我是否也会从我这边得到错误,但它没有。
我的main.tf文件:

provider  "azurerm" {

features {

key_vault {

purge_soft_delete_on_destroy  =  true

recover_soft_deleted_key_vaults  =  true

}

}

}

  

data  "azurerm_client_config"  "current" {}

  

resource  "azurerm_resource_group"  "example" {

name  =  "demorgvk"

location  =  "East US"

}

  

resource  "azuread_application"  "example" {

display_name  =  "demoappvk"

}

  

resource  "azuread_service_principal"  "example" {

application_id  =  azuread_application.example.application_id

app_role_assignment_required  =  false

}

  

resource  "azurerm_key_vault"  "example" {

name  =  "examplekeyvaultvk"

location  =  azurerm_resource_group.example.location

resource_group_name  =  azurerm_resource_group.example.name

enabled_for_disk_encryption  =  true

tenant_id  =  data.azurerm_client_config.current.tenant_id

soft_delete_retention_days  =  7

purge_protection_enabled  =  false

  

sku_name  =  "standard"

  

access_policy {

tenant_id  =  data.azurerm_client_config.current.tenant_id

object_id  =  data.azurerm_client_config.current.object_id

  

key_permissions  =  [

"Get",

]

  

secret_permissions  =  [

"Get",

]

  

storage_permissions  =  [

"Get",

]

}

}
   
  

resource  "azurerm_key_vault_access_policy"  "example-principal" {

key_vault_id  =  azurerm_key_vault.example.id

tenant_id  =  data.azurerm_client_config.current.tenant_id

object_id  =  azuread_service_principal.example.object_id

  

key_permissions  =  [

"Get", "List", "Encrypt", "Decrypt"

]

}

您所面临的错误可能有一些原因。
1.状态文件可能已损坏。
1.检查资源组的权限,访问策略和运行terraform的服务主体,并确保我们有唯一的访问策略名称。
1.使用下面提到的语法,每次我们发出运行命令时,资源都将被提供。

**生命周期{

prevent_destroy = true
}**
这可以防止资源的破坏。

输出:

第1次运行terraform_plan

第1次运行terraform_apply

第2次运行**terraform_plan**

另请检查状态文件中保存的azurerm_key_vault_access_policy在执行运行时不应修改。

通过遵循上述所有步骤,我们可以克服在每次运行时重新配置资源的问题。

相关问题