Hashicorp Vault 代理注入器:使用 ''agent-inject-command' 注释进行 base64 解码秘密
Hashicorp Vault Agent Injector: base64 decoding secrets using ''agent-inject-command' annotation
我正在将一个 base64 编码的信任库文件注入到我的容器中,然后使用“agent-inject-command”注释尝试解码秘密并将其写入文件。这是我的 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 Agent Templates, specifically the base64Decode
function from their Consul Templating 引擎的替代方法。
用于注入解码密文的相关配置如下:
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 }}
我正在将一个 base64 编码的信任库文件注入到我的容器中,然后使用“agent-inject-command”注释尝试解码秘密并将其写入文件。这是我的 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 Agent Templates, specifically the base64Decode
function from their Consul Templating 引擎的替代方法。
用于注入解码密文的相关配置如下:
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 }}