如何解决Hashicorp Vault Agent Injector:使用“agent-inject-command”注释的 base64 解码秘密
我将一个 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 的替代方法,特别是 Consul Templating 引擎中的 base64Decode
函数。
用于注入解码后的secret的相关配置如下:
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 }}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。