使用Spring Cloud Vault在Spring Boot应用程序中自动续订AWS凭证

时间:2018-10-23 13:17:25

标签: spring-boot amazon-s3 spring-cloud spring-vault

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

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

我的问题是,由于保险柜策略,AWS S3凭证的使用寿命有限,因此我必须不时重新启动应用程序才能从保险柜获取新凭证

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

1 个答案:

答案 0 :(得分:1)

TL; DR

不,没有自动性,但是您可以自己做。

阅读时间更长

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

另一种方法仅限于AWS功能,它提供了自己的AWSCredentialsProvider实现,该实现由保管库PropertySource支持,该保管库将旋转应用于凭证。这需要您提供一些与VaultConfigurer甚至直接通过SecretLeaseContainer集成的代码,以获得秘密的生命周期事件回调。参见here for an integration example

有一个ticket asking for the same question,其中包含为何该模式无法广泛应用的背景。