【发布时间】:2020-02-01 21:09:30
【问题描述】:
所以我试图在 Terraform 中找到隐藏秘密的方法。需要注意的是,秘密是用于连接到我们的 Key Vault 的服务主体。我无法将机密存储在 Key Vault 中,因为此时它尚未连接到 Key Vault。这是我的主要 tf 文件的一部分。
provider "azurerm" {
alias = "kv_prod"
version = "1.28"
tenant_id = "<tenant id>"
subscription_id = "<sub id>"
client_id = "<SP client id>"
client_secret = "<SP secret>"
}
这在我的模块中进一步用于存储存储帐户密钥和其他机密。它只是碰巧在不是每个人都可以访问的 Prod 订阅中。
有没有人遇到过这样的事情?如果是这样,您将如何保护该秘密?
【问题讨论】:
-
您是否将 Terraform 脚本作为持续部署的一部分运行?如果是这样,您使用的是什么工具/平台,是否类似于 Azure DevOps。大多数持续部署工具都会有一些机制来安全地存储这样的秘密,然后在部署管道运行时将其作为变量注入。因此,密钥值的秘密在运行时使用,但您的 IaC 源代码或 Terraform 状态中没有它。
-
很遗憾没有。我们没有使用任何部署工具。 TF 由使用该模块的开发人员手动运行。因此开发人员拉下变量文件,以便他们可以设置变量。他们制定自己的计划并申请。
标签: azure terraform azure-keyvault terraform-provider-azure