【问题标题】:Hashicorp Vault Agent Injector: base64 decoding secrets using ''agent-inject-command' annotationHashicorp Vault Agent Injector:使用''agent-inject-command'注释的base64解码秘密
【发布时间】:2021-04-24 09:50:29
【问题描述】:

我将一个 base64 编码的信任库文件注入到我的容器中,然后使用“agent-inject-command”注释尝试解码秘密并将其写入文件。这是我的 k8s 清单的 sn-p:

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 命令,但问题仅在重定向或链接命令时出现。

我们将不胜感激任何有关执行此操作的正确方法或实现相同目标的替代方法的见解。

【问题讨论】:

    标签: hashicorp-vault


    【解决方案1】:

    找到了使用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 }}
    

    【讨论】:

      猜你喜欢
      • 2021-07-05
      • 2017-12-18
      • 2022-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-01
      • 2021-11-06
      • 2012-02-18
      相关资源
      最近更新 更多