带有保管库令牌的 Spring 配置服务器不遵循保管库中定义的 ACL



我有 spring 配置服务器和 vault 作为后端。 我在保管库中使用ACL策略创建了一个令牌。 当我在spring.cloud.config.token中使用令牌时,它不尊重ACL

我的 sping 配置客户端具有此引导属性

spring:
  application:
    name: app1
  cloud:
    config:
      uri: https://config-server-ur:port
      token: token-associated-to-acl-policy

我创建了一个名为"App1"的 ACL 策略,该策略仅允许保管库中的令牌读取"App1"。

path "secret/app1" {
  capabilities = ["read", "list"]
}
./vault token create -display-name="app1" -policy="app1"

我使用了客户端中生成的令牌,但它不起作用。

当我将ACL策略更改为以下内容时,它可以工作

path "secret/*" {
  capabilities = ["read", "list"]
}

但是,当我直接使用 X-Vault 令牌访问保管库时,它按预期完美运行

我找到了解决方案,将spring.cloud.config.server.vault.defaultKey设置为空,就像在配置服务器bootstrap.yml中一样

spring.profiles.active=git, vault
spring.cloud.config.server.git.uri=properties-git-repo-url
spring.cloud.config.server.git.username=user
spring.cloud.config.server.git.password=password
spring.cloud.config.server.git.searchPaths=/{application}/xyz
spring.cloud.config.server.git.force-pull=true
spring.cloud.config.server.git.timeout=10
spring.cloud.config.server.git.order=2
spring.cloud.config.server.vault.host=vault-hostname
spring.cloud.config.server.vault.port=8200
spring.cloud.config.server.vault.scheme=https
spring.cloud.config.server.vault.backend=secret
spring.cloud.config.server.vault.defaultKey=
spring.cloud.config.server.vault.profileSeparator=/
spring.cloud.config.server.vault.skipSslValidation=true
spring.cloud.config.server.vault.order=1
spring.cloud.config.server.vault.kvVersion=1

默认情况下,spring.cloud.config.server.vault.defaultKey= 设置为"application"。

相关内容

  • 没有找到相关文章

最新更新