簡體   English   中英

Azure:: Terraform 在 azure keyvault 機密上失敗

[英]Azure :: Terraform fails on azure keyvault secrets

我注意到這個奇怪的錯誤,因為我將我的整個代碼從 1.42.0 提供程序版本移動到 2.19.0。 我正在創建幾個 keyvault 秘密。 早些時候,當我嘗試在應用一次后執行計划時,它曾經刷新 state 並繼續,但現在更新提供程序版本后,我注意到以下錯誤。

錯誤:ID 為“https://mytestingvault.vault.azure.net/secrets/hub-access/060e71ecd1084cb5a6a496f77a2aea5c”的資源已存在 - 要通過 Terraform 管理此資源需要導入到 State。請參閱資源“azurerm_key_vault_secret”的文檔以獲取更多信息。

此外,我添加了生命周期忽略更改,以查看它是否可以跳過讀取保險庫機密更改,但不幸的是顯示了相同的錯誤。 擺脫錯誤的唯一方法是刪除秘密。 我在這里錯了什么?

  lifecycle {
    ignore_changes = [
value,name
    ]
  }

您可能需要閱讀Terraform state 管理的一般主題。 這並非特定於您的 Key Vault 機密。 某些資源(您的秘密)不是由您剛剛執行的 terraform 工作空間創建的。 TF 不喜歡這樣。 因此,您要么需要這個預先存在的資源導入到這個工作區的 state 中,要么將其刪除,以便重新創建(從而管理)

問題是即使 keyvault 被刪除,我們也必須使用 aws cli purge 通過 cli 清除它。

Terraform 密鑰保管庫文檔說:

Terraform 將在創建過程中自動恢復軟刪除的 Key Vault,如果找到的話 - 您可以使用 Provider 塊中的功能塊選擇退出此功能。

您應該像這樣配置您的 Terraform 以停止恢復軟刪除的 Key Vault:

provider "azurerm" {
  features {
    key_vault {
        recover_soft_deleted_key_vaults = false
      }
    }
}

如果您希望 Terraform 在使用terraform destroy時清除任何軟刪除的密鑰保管庫,請使用以下附加行:

provider "azurerm" {
  features {
    key_vault {
        purge_soft_delete_on_destroy    = true
        recover_soft_deleted_key_vaults = false
      }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM