如何使用spring-cloud-vault检索旧版本的密钥?

时间:2018-09-21 11:28:35

标签: hashicorp-vault spring-cloud-vault-config spring-vault

我正在使用spring-cloud-vault从Vault服务器检索版本化的kv。当我使用environemnt.getSecret("key1")时,它仅返回密钥的最新版本,例如world2。是否可以通过使用spring-cloud-vault库指定给定密钥的版本号来检索秘密的旧版本?

#vault kv put secret/my-app key1=world1
Key              Value
---              -----
created_time     2018-09-20T12:00:19.6136263Z
deletion_time    n/a
destroyed        false
version          1

#vault kv put secret/my-app key1=world2
Key              Value
---              -----
created_time     2018-09-20T12:00:27.1820524Z
deletion_time    n/a
destroyed        false
version          2

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Spring Cloud Vault从2.0版本开始支持版本化的键值API(键值后端v2)。非版本化键值API(键值后端v1)有两个区别:

  1. 版本控制的键值后端使用其他API。特别是,HTTP路径和JSON有效负载稍有不同。
  2. 版本化的键值后端能够存储多个版本。

对于Spring Cloud Vault,仅考虑了API的第一个方面(有关更多详细信息,请参见related GitHub ticket)。

Spring Cloud Vault不使用版本控制方面(即读取较旧的秘密版本),而是读取最新的秘密版本。我提交了a ticket,以将Vault的版本控制功能与配置属性/ Environment一起使用。该票据应该是开始讨论这种集成的样子以及如何使其最有意义的一个好地方。