1

我们这里的几乎所有应用程序都在 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

4

0 回答 0