15. 租约生命周期管理(续订和撤销)
随着每个秘密,Vault 创建一个租约: 元数据包含诸如持续时间、可续期性等信息。
Vault 承诺该数据在给定的持续时间(Time To Live,TTL)内是有效的。 一旦租约到期,Vault 可以撤销该数据,使用该密钥的消费者就无法再确定其有效性。
Spring Cloud Vault 维护着登录Tokens和机密的租约生命周期。 也就是说,与租约关联的登录Tokens和机密会在租约到期前安排续期,直到最终到期。 应用程序关闭会撤销已获得的登录Tokens和可续期租约。
秘密服务和数据库后端(如MongoDB或MySQL)通常会生成可续期的租约,因此生成的凭据在应用程序关闭时将被禁用。
| 静态Tokens不会刷新或撤销。 |
租约续期和撤销默认启用,可以通过将 false 设置为 spring.cloud.vault.config.lifecycle.enabled 来禁用。
不推荐这样做,因为租约会到期,Spring Cloud Vault 将无法再访问 Vault 或使用生成凭据的服务,且在应用程序关闭后,仍然会保留有效的凭据。
spring.cloud.vault:
config.lifecycle:
enabled: true
min-renewal: 10s
expiry-threshold: 1m
lease-endpoints: Legacy
-
enabled控制是否将与 secrets 相关联的租约视为续期,过期的 secrets 会进行轮换。 默认启用。 -
min-renewal设置在续租前至少需要的持续时间。 此设置防止续租过于频繁。 -
expiry-threshold设置过期阈值。 租约在其到期前配置的时间段后会自动续期。 -
lease-endpoints设置续签和撤销端点。 适用于 vault 版本早于 0.8 的遗留配置,以及后续的 SysLeases。
见 also: Vault 文档: 租赁、续租和撤销