首页 > 解决方案 > 删除 google_kms_crypto_key 资源时出现错误消息

问题描述

我正在使用 gcp terraform 提供商管理 kms 密钥和密钥环

resource "google_kms_key_ring" "vault" {
  name     = "vault"
  location = "global"
}

resource "google_kms_crypto_key" "vault_init" {
  name            = "vault"
  key_ring        = google_kms_key_ring.vault.self_link
  rotation_period = "100000s" #
}

当我第一次运行它时,我能够成功地创建密钥和密钥环,并且terraform destroy允许 terraform 代码成功执行而没有任何错误。

下次我做 aterraform apply时,我只是用来terraform import从 GCP 导入资源并且代码执行工作正常。

但是一段时间后,某些密钥版本1被破坏了。现在每次我做 aterrafrom destroy时,我都会收到以下错误

module.cluster_vault.google_kms_crypto_key.vault_init: Destroying... [id=projects/<MY-PROJECT>/locations/global/keyRings/vault/cryptoKeys/vault]

Error: googleapi: Error 400: The request cannot be fulfilled. Resource projects/<MY-PROJECT>/locations/global/keyRings/vault/cryptoKeys/vault/cryptoKeyVersions/1 has value DESTROYED in field crypto_key_version.state., failedPrecondition

有没有办法抑制这个特定的错误?KeyVersions 1-3 被销毁。

在此处输入图像描述

标签: terraformterraform-provider-gcpgoogle-cloud-kms

解决方案


目前无法删除 Cloud KMS 资源。这违背了 Terraform 所期望的能够完全销毁和重新创建资源的行为。您将需要使用不同的密钥名称或密钥环名称才能继续。


推荐阅读