HashiCorp Vault的Terraform凭证
terraform-credentials-vault 是一个Terraform "证书助手 "插件,
允许通过环境变量为Terraform原生服务 (私有模块注册,Terraform Cloud等)提供证书。
它的基础是apparentlymart/terraform-redentials-env。
要使用它,请下载一个发布档案 ,并将其解压到Terraform
寻找凭证帮助插件的~/.terraform.d/plugins 目录中。(归档文件中的文件名对Terraform正确发现它很重要,所以不要重命名)
Terraform将采用它在插件搜索目录中发现的最新版本的插件,所以如果你要在不同的版本之间切换,你可能会选择删除现有的安装版本,以确保Terraform选择所需的版本。
一旦你安装了这个插件,
在你的
Terraform CLI配置
中添加以下块来启用它
credentials_helper "vault" {
args = ["--vault-path=/secret/data/gitlab/terraform_registry"]
}
安装并启用该助手后,你可以在
环境中为你的shell
设置特定
主机名的证书,以便它们
被terraform ,然后反过来被terraform-credentials-vault 。
该助手将使用你现有的Vault环境设置,如VAULT_ADDR 和~/.vault-token 或VAULT_TOKEN 作为你的
令牌。
Vault路径必须使用kv2秘密引擎,并且大多数包含一个与主机名相匹配的秘密
,并有一个token的字段。例如:对于secrets/data/terraform_registry的-vault-path,你
和gitlab.corp.com的hostnameterraform-credentials-vault 将在secrets/data/terraform_registry/gitlab.com
,并使用token字段的值。
Terraform在
需要向Terraform原生服务发出请求
时,将执行配置的凭证帮助插件
,该服务的凭证没有
在CLI配置中使用credentials 块直接配置。
不过,credentials 块覆盖了凭证帮助插件,所以如果你有任何你希望配置的主机名的现有credentials 块,你将需要先删除该块。