我有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访问保管库时,它可以按预期正常运行
答案 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 =设置为“应用程序”。