我已配置并运行保管库。 我还有与 Vault 集成的本地 gitlab 服务器。 他们合作得非常完美。 当我尝试使用如下参数调用秘密时,问题就开始了:
SECRET:
vault: $path_secret@kv-secret
variables:
path_secret: path/to/secret
如果我将其设置为没有“/”,则它可以正常工作:
SECRET:
vault: $first/$second/$third@kv-secret
variables:
first: path
second: to
third: secret
请忽略任何语法问题。问题在于逻辑而不是语法。 在保管库秘密的变量中指定“/”似乎存在问题。
此外,我发现如果我将负责读取此“路径/到/秘密”的策略设置为:
path "*" {
capabilities = ["read","list"]
}
它工作起来没有任何问题! 我的 Vault 在任何其他情况下都能与我的 gitlab ci 完美配合。
我尝试用“//”和“\”转义“/”字符,并在创建和使用时用引号将变量括起来,但仍然没有成功。
更新:刚刚发现我们最近升级到了较新的 gitlab 版本,我担心这与此故障有关,我们之前的版本 15.10 没有很大的飞跃,但我不确定是什么导致了它
Vault版本1.12.1
Gitlab 版本 15.11
似乎从保管库获取秘密时出现问题,而租客“/”是参数的一部分...... 可能与解析它有关。 我只是将它分成路径目录