【问题标题】:Automatically renew AWS credentials in a Spring Boot application using Spring Cloud Vault使用 Spring Cloud Vault 在 Spring Boot 应用程序中自动更新 AWS 凭证
【发布时间】:2019-03-27 18:05:54
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    TL;DR

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

    更长的阅读时间

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

    另一种仅限于 AWS 功能的替代方案是提供自己的 AWSCredentialsProvider 实施,该实施由 Vault PropertySource 支持,该 Vault PropertySource 将轮换应用于您的凭证。这需要您提供一些与VaultConfigurer 集成的代码,甚至直接通过SecretLeaseContainer 来获取秘密生命周期事件回调。见here for an integration example

    有一个ticket asking for the same question 包含为什么这种模式不能广泛适用的背景。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-12
      • 2023-01-30
      • 1970-01-01
      • 2018-01-30
      • 2018-12-05
      • 2016-01-21
      • 2023-03-13
      相关资源
      最近更新 更多