Hashicorp Vault Agent Injector:base64 使用代理注入命令注释解码机密



我将一个base64编码的信任存储文件注入到我的容器中,然后使用"代理注入命令"注释来尝试解码机密并将其写入文件。这是我的k8s清单的一个片段:

vault.hashicorp.com/agent-inject-secret-truststore-jks: "secret/directory/truststore_jks"
vault.hashicorp.com/agent-inject-file-truststore-jks: b64.truststore.jks
vault.hashicorp.com/secret-volume-path-truststore-jks: /home
vault.hashicorp.com/agent-inject-command-truststore-jks-truststore-jks: /bin/bash -c "base64 -d /home/b64.truststore.jks > /home/truststore.jks"

结果是,编码的版本被注入到文件中,但命令没有成功运行,因此解码的版本不存在于容器中。

我已经能够用这种方法(以及其他一些命令(自己运行base64 -d命令,但问题只出现在重定向或链接命令时。

任何关于实现这一目标的正确方法或实现同一目标的替代方法的见解都将不胜感激。

找到了一种使用Vault代理模板的替代方法,特别是Consul模板引擎中的base64Decode函数。

用于注入解码秘密的相关配置如下:

vault.hashicorp.com/agent-inject-secret-truststore-jks: "secret/path/to/secret/truststore_jks"
vault.hashicorp.com/agent-inject-file-truststore-jks: truststore.jks
vault.hashicorp.com/secret-volume-path-truststore-jks: /home
vault.hashicorp.com/agent-inject-template-truststore-jks: |
{{- with secret "secret/path/to/secret" -}}
{{ base64Decode .Data.data.truststore_jks }}
{{-  end }}

最新更新