SpringCloud 使用多个按键和按键旋转

2023-08-01 09:45 更新

除了加密属性值中的​{cipher}​前缀外,Config Server在(Base64编码的)密文开始之前查找零个或多个​{name:value}​前缀。密钥被传递到​TextEncryptorLocator​,后者可以执行为密码找到​TextEncryptor​所需的任何逻辑。如果已配置密钥库(​encrypt.keystore.location​),则默认定位器将查找具有key前缀提供的别名的密钥,其密文类似于以下内容:

foo:
  bar: `{cipher}{key:testkey}...`

定位器查找名为“ testkey”的键。也可以通过在前缀中使用​{secret:…​}​值来提供机密。但是,如果未提供,则默认为使用密钥库密码(这是在构建密钥库且未指定密钥时得到的密码)。如果确实提供了机密,则还应该使用自定义​SecretLocator​对机密进行加密。

当密钥仅用于加密几个字节的配置数据时(也就是说,它们未在其他地方使用),从密码的角度讲,几乎不需要旋转密钥。但是,您有时可能需要更改密钥(例如,在发生安全漏洞时)。在这种情况下,所有客户端都需要更改其源配置文件(例如,在git中),并在所有密码中使用新的​{key:…​}​前缀。请注意,客户端需要首先检查Config Server密钥库中的密钥别名是否可用。

如果要让Config Server处理所有加密以及解密,则还可以将{name:value}前缀添加为发布到/encrypt端点的纯文本。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号