1

我正在尝试创建一个定期从 AWS S3 获取数据的 Spring Boot 应用程序。

AWS S3 凭证是在应用程序启动时使用 Spring Cloud Vault 从 Vault 中获取的。

我的问题是由于 Vault 政策,AWS S3 凭证的使用寿命有限,所以我必须不时重新启动我的应用程序才能从 Vault 获取新凭证

有没有办法使用这些凭据自动重启 bean?

4

1 回答 1

2

TL;博士

不,没有自动化,但你可以自己做。

读得越久

Spring Boot 和 Spring Cloud 并不是真正用于不间断地对配置应用持续更新。Spring Cloud Config 附带Refresh Scope支持,允许使用注释 bean@RefreshScope并触发重新初始化的 bean 的刷新。这种方法需要与消息总线集成或触发刷新端点。

另一种仅限于 AWS 功能的替代方案是提供自己的AWSCredentialsProvider实施,该实施由 Vault 支持,该 VaultPropertySource将轮换应用于您的凭证。这需要你提供一些代码来集成VaultConfigurer甚至直接通过SecretLeaseContainer来获取秘密的生命周期事件回调。有关集成示例,请参见此处。

有一张票要求相同的问题,其中包含为什么这种模式不能广泛适用的背景。

于 2018-10-25T10:46:49.100 回答