间歇性 Hashicorp Vault 与 Spring Cloud Mongo

问题描述

我们这里几乎所有的应用程序都在 Kubernetes 生态系统中使用 SpringCloud,现在,出于安全原因,我们决定也使用 Hashicorp Vault。 所有的事情似乎都在工作,但是当我们使用 Atlas 时,我们有一个间歇性的数据库连接。我们不确定为什么,但可以看到应用程序在正确启动之前重启了很多次。查看 spring 云日志,我们可以看到 spring 正在调用 Vault 并且 Vault 正在为我们创建一个动态用户,几秒钟后,spring 请求删除用户,因为它似乎不起作用。 你们中有人已经遇到过这样的事情吗?

在我们的 pom.xml 中,我们有以下依赖项:

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-vault-config-databases</artifactId>
</dependency>
</dependencies>

以及 bootstrap.yaml 的示例:

spring:
  application:
    name: application-name
    version: @project.version@
  profiles: dev,sit,uat,prod
  cloud:
    vault:
      enabled: true
      application-name: application-name
      authentication: APPROLE
      read-timeout: 15000
      app-role:
        role-id: XXXXXXX
        secret-id: XXXXX
        role: XXXXXX
      fail-fast: true
      scheme: http
      host: 10.121.0.11
      connection-timeout: 30000
      config:
        lifecycle:
          enabled: true
          min-renewal: 15m
          expiry-threshold: 30m
      generic:
        enabled: false
      database:
        enabled: true
        role: YYYYYY
        backend: database
        username-property: db.username
        password-property: db.password
  data:
    mongodb:      
   uri: mongodb+srv://${db.username}:${db.password}@europe-dev-shard-pri.bro0z.azure.mongodb.net/?retryWrites=true&w=majority}
      database: ${MONGODB_DATABASE:application-database}

可以在此处查看完整日志:https://github.com/spring-cloud/spring-cloud-vault/files/6166864/log.txt

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)