具有Vault令牌的Spring配置服务器不遵守Vault中定义的ACL

时间:2019-07-11 09:46:01

标签: hashicorp-vault spring-config

我有spring config服务器和Vault作为后端。我使用acl策略在Vault中创建了令牌。当我在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策略,该策略仅允许Vault中的令牌读取“ app1”。

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

./vault token create -display-name="app1" -policy="app1"

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

当我将acl政策更改为以下内容时,它会起作用

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

但是,当我直接使用X-Vault-token访问保管库时,它可以按预期正常运行

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,将spring.cloud.config.server.vault.defaultKey设置为空,就像在config-server 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 =设置为“应用程序”。