此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Cloud Config 4.1.4! |
使用多个密钥和密钥轮换
除了{cipher}
prefix 的 Config Server 会查找零个或多个{name:value}
(Base64 编码的)密文开头之前的前缀。
键被传递给TextEncryptorLocator
,它可以执行任何需要的逻辑来查找TextEncryptor
对于密码。
如果您已配置密钥库 (encrypt.keystore.location
),则默认定位器会查找具有key
前缀,其密文如下所示:
foo:
bar: `\{cipher}{key:testkey}...`
定位器将查找名为 “testkey” 的键。
密钥也可以通过使用{secret:…}
值。
但是,如果未提供,则默认使用密钥库密码(这是您在构建密钥库且未指定密钥时获得的密码)。
如果您确实提供了密钥,则还应使用自定义SecretLocator
.
当密钥仅用于加密几个字节的配置数据(即,它们没有在其他地方使用)时,出于加密原因,几乎不需要密钥轮换。
但是,您可能偶尔需要更改密钥(例如,在发生安全漏洞时)。
在这种情况下,所有客户端都需要更改其源配置文件(例如,在 git 中)并使用新的{key:…}
前缀。
请注意,客户端需要首先检查密钥别名在 Config Server 密钥库中是否可用。
如果你想让 Config Server 处理所有加密和解密,那么{name:value} 前缀也可以添加为纯文本,发布到/encrypt 端点。 |