terraform - 删除 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 被销毁。
解决方案
目前无法删除 Cloud KMS 资源。这违背了 Terraform 所期望的能够完全销毁和重新创建资源的行为。您将需要使用不同的密钥名称或密钥环名称才能继续。
推荐阅读
- c# - 页面对象模型页面初始化
- ios - 存档在没有任何上下文的情况下停止,但在设备上构建时效果很好
- java - 为什么收藏
s= 新树集<>(), 树集 s= new TreeSet<>() 和 Set s = new TreeSet<>() 产生相同的结果? - json - 后台大JSON的优化解析
- c# - 如何修复 logman 会话中丢失的 EventSource 跟踪
- python-3.x - Request.get 不返回响应值
- php - 检查 URL 是不是使用 PHP 的图像
- sql - 如何将一列与另一列的条件相加?
- python - 如何在 Python 中从字典的多个值中访问单个键
- mysql - 从另一个表插入不重复