我\xe2\x80\x99m 将base64编码的信任库文件注入到我的容器中,然后使用\xe2\x80\x98agent-inject-command\xe2\x80\x99注释尝试解码秘密并将其写入文件。这是我的 k8s 清单的片段:
\nvault.hashicorp.com/agent-inject-secret-truststore-jks: "secret/directory/truststore_jks"\nvault.hashicorp.com/agent-inject-file-truststore-jks: b64.truststore.jks\nvault.hashicorp.com/secret-volume-path-truststore-jks: /home\nvault.hashicorp.com/agent-inject-command-truststore-jks-truststore-jks: /bin/bash -c "base64 -d /home/b64.truststore.jks > /home/truststore.jks"\nRun Code Online (Sandbox Code Playgroud)\n结果是编码版本被注入到文件中,但命令没有成功运行,因此容器中不存在解码版本。
\n我已经能够base64 -d使用此方法(以及其他一些命令)单独运行该命令,但问题仅在重定向或链接命令时出现。
任何关于正确方法或达到相同目标的替代方法的见解将不胜感激。
\n找到了使用Vault Agent Templates 的替代方法,特别base64Decode是其Consul 模板引擎中的功能。
用于注入解码后的秘密的相关配置如下:
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 }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4301 次 |
| 最近记录: |