Terraform:将敏感数据添加到 Azure KeyVault

Terraform: Adding sensitive data to Azure KeyVault

我正在使用 Terraform 将一些敏感数据(例如现有 sql 服务器的密码)添加到我的 Azure keyvault。问题是这些数据以变量的形式传递给 Terraform。我正在使用 sensitive=true 但它仍然可以在 terraform 文件中读取。该代码将存储在私有 Azure Devops 存储库中,但其他人将能够看到它。确保其安全的最佳做法是什么?

我已经在我的环境中测试过

默认情况下,像 Key Vault 机密这样的值被 Terraform 视为敏感

虽然 运行 terraform plan 命令,您可以看到密钥保管库机密值为 (敏感)

但是问题是这些数据在variables.tf文件中是可以看到的。有权访问 variables.tf 文件的任何人都可以看到此敏感数据。

解决此问题的一种方法是在 variables.tf 中声明没有任何默认值的变量。

然后在运行 terraform plan命令时,会提示输入key vault secret值,你可以提供。

但是,手动输入值既费时又容易出错。

其他方法可以将这些值存储在 .tfvars 文件中

但是你需要限制.tfvars文件的访问权限

参考Protect Sensitive Input Variables | Terraform - HashiCorp Learn