地形中vault的提供程序配置



我的地形代码中有以下地形配置

data "external" "region" {
program = ["sh", "test.sh"]
query = {
aws_region = var.aws_region
vault_url  = var.vault_url
vault_role = var.vault_role
}
}
provider "vault" {
address = "http://3.218.2.138:8200"
token   = data.external.region.result["vault_token"]
}

外部程序运行命令vault登录-method=aws role=test role,然后返回vault令牌。

有没有一种方法可以避免这个外部程序,并在我执行地形应用和地形显示时生成vault令牌。

那么,基本上有没有一种方法可以避免执行外部脚本,并在不执行外部脚本的情况下获得vault令牌。

一种典型的方法是在运行Terraform之前运行vault login(或其他等效进程(,然后让Terraform以与Vault客户端本身相同的方式读取这些环境凭据。

尽管Terraform提供者通常接受凭据作为其配置的一部分,以允许更复杂的情况,但将凭据传递给Terraform提供者的理想方式是通过任何相关系统的标准机制间接传递凭据。例如,Terraform AWS提供程序了解如何以与awsCLI相同的方式读取凭据,并且Vault提供程序在Vault CLI使用的相同环境变量中查找凭据。

使用集中式系统(如Vault with Terraform(的团队通常会自动运行Terraform,这样这些系统的配置就可以集中化,而不是为每个本地运行的用户重新实现。因此,您的自动化脚本可以在运行Terraform之前从Vault中获取临时令牌,然后在Terraform返回后显式吊销该令牌,即使Terraform操作本身失败。

最新更新