Vault 配置是否支持环境变量?

Vault 配置是否支持环境变量?

大多数配置都支持来自环境的内联变量。Vault 配置是否支持环境变量?例如:

      ui = true
      listener "tcp" {
        tls_disable = 1
        address = "[::]:8200"
        cluster_address = "[::]:8201"
      }
      storage "postgresql" {
        connection_url = $PG_URL // where PG_URL is an environment variable
      }

答案1

目前还不能直接实现。检查此 GH 问题. 但您可以使用envsubst

答案2

虽然这是不可能的,但请记住,如果文件中缺少许多配置项,Vault 将读取这些配置项的环境变量。

例如,如果你事先不知道客户端应该使用的 API 地址,请将其从配置文件中删除,然后让VAULT_API_ADDRVault 通过变量发现它

envsubst否则,按照Alex 的建议运行你的“未解决”文件:

< vault-unresolved-config.hcl envsubst > vault-config.hcl

答案3

虽然它不直接支持除内置环境变量之外的变量,但您可以使用 HEREDOC 在执行之前动态填充配置文件。这通常是必要的,即使 Terraform(另一个 Hashicorp 产品)也对变量有广泛的支持,但后端配置详细信息除外。

相关内容