【问题标题】:Error message while deleting google_kms_crypto_key resource删除 google_kms_crypto_key 资源时出现错误消息
【发布时间】:2020-05-04 14:58:29
【问题描述】:

我正在使用 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 代码成功执行而没有任何错误。

下次我做terraform apply时,我只是使用terraform import从GCP导入资源,代码执行正常。

但一段时间后,某些密钥版本 1 被破坏了。现在每次我执行terrafrom 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 被销毁。

【问题讨论】:

    标签: terraform terraform-provider-gcp google-cloud-kms


    【解决方案1】:

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

    【讨论】:

    • 我知道这一点。我的问题是有没有办法抑制这个错误?或者,如果我希望代码成功运行,是否需要在每个 terraform destroy 之前执行 terraform state rm
    • 您需要将其从状态中删除。目前无法在销毁期间忽略资源:github.com/hashicorp/terraform/issues/23547
    猜你喜欢
    • 2021-06-17
    • 2016-11-17
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多