我是HashiCorp Vault的新手,并设置了Spring云配置服务器,将Vault作为存储机密,密钥等的后端。
问题是我能够访问默认级别存储的机密,例如:
curl -X "GET" "http://localhost:8888/myapp/default" -H "X-Config-Token: XXX"
但是,我无法访问我存储在Vault中的配置文件特定机密。无论我将机密存储在哪个配置文件中,API始终返回默认值而不是配置文件特定值。
例如:
curl -X "GET" "http://localhost:8888/myapp/prod" -H "X-Config-Token: XXX"
以下是存储在Vault开发实例(1.1.3版)上的秘密:
1. vault kv put secret/myapp foo=myappsdefault
2. vault kv put secret/myapp/prod foo=myappsprod
Spring云配置服务器application.yml:
spring:
profiles:
active: vault
cloud.config.server.vault.kvVersion: 2
server:
port: 8888
Spring云服务器pom.xml:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
<relativePath/>
</parent>
<properties>
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
预期:
curl -X "GET" "http://localhost:8888/myapp/prod" -H "X-Config-Token: XXX"
{
"name": "myapp",
"profiles": [
"prod"
],
"label": null,
"version": null,
"state": null,
"propertySources": [
{
"name": "vault:myapp",
"source": {
"foo": "myappsprod"
}
}
],
}
实际:
{
"name": "myapp",
"profiles": [
"prod"
],
"label": null,
"version": null,
"state": null,
"propertySources": [
{
"name": "vault:myapp",
"source": {
"foo": "myappsdefault"
}
}
],
}
以下是保险库输出:
vault kv get secret/myapp/prod
=== Data ===
Key Value
--- -----
foo myappsprod
vault kv get secret/myapp
=== Data ===
Key Value
--- -----
foo myappsdefault
所以问题就变成了为什么spring云服务器只查询默认的配置文件机密,而不是特定于环境的?
顺便说一句,配置文件正在应用于我存储在回购中的GIT文件,同时将Spring云服务器与GIT集成为后端,我期待与Vault类似的东西。
在配置上苦苦挣扎之后。我尝试在我的 application.yml 中添加其他属性,这对我的情况有所帮助。
application.yml的快照:
server:
port: 8888
spring:
profiles:
active: vault
cloud:
config:
server:
vault:
port: 8200
host: 127.0.0.1
kvVersion: 1
backend: kv
profileSeparator: /
#skipSslValidation: true
#defaultKey: signing
management:
endpoints:
web:
exposure:
include: '*'
附加的事情是:1.我将后端从机密更改为kv(我的自定义机密引擎)2.配置文件分隔符为/(在. yml中使用/)
在我的情况下,“profileSeparator”key成功了
我正在设置一个Spring启动云配置服务器,它使用VAULT来存储秘密。 保管库身份验证机制设置为AWS_IAM。我的类路径中也有aws-java-sdk。aws cli也被配置。 当我向配置服务器发出请求时,我能够从VAULT中获取机密,但第一次请求除外 对配置服务器的第一个请求失败,因为它试图安排任务在到期后续订vault令牌(来自vault响应) 应用程序中的配置。性质 错误日志是
我是Spring Cloud的新手,我正在尝试使用存储在github上的属性文件连接服务器和客户端。 我的服务器应用程序。yml文件的配置如下: github回购协议链接在这里,主要属性和替代属性 我的客户端应用程序具有以下设置 Rest控制器是: 所有${变量}van都可以在位于git存储库中的属性文件中找到。 服务器运行正常,但是客户端给了我以下错误 创建名为“rateController”的
我正在使用Spring Cloud Config Server为我的客户端应用程序提供配置。为了方便机密配置,我使用HashiCorp Vault作为后端。对于其余的配置,我使用GIT repo。因此,我在复合模式下配置了配置服务器。请参阅我的配置服务器引导。yml如下:- 这一切都按预期工作。但是,我使用的代币使用Vault auth策略进行保护。见下文:- 我的问题是,我没有在所有这些范围内存
我试图修改我们目前的Spring云配置服务器,它只有一个JDBC后端,以包括一个保险库后端,以使JDBC连接证书保密。 库: bootstrap.yml 应用程序. yml 没有从vault中检索spring.datasource用户名和密码。
我正在使用Spring Cloud Config服务器,能够检测来自git存储库的更改并将其传递给配置客户机。 有两种方法,我已经实现了: null 所以两者都工作得很好,那么使用Spring Cloud Bus有什么好处吗?或者在生产环境中,不使用Spring Cloud Bus会有什么问题吗?因为将需要额外的工作来设置RabbitMQ集群(HA)作为生产中的Spring云总线。 谢谢,大卫
我有一个使用SpringCloud配置的Spring Boot应用程序,我正在尝试从Bitbucket获取应用程序的配置文件。前一段时间我可以获取配置文件,但现在我在尝试通过配置服务器url访问时出错。 应用yml: 当我试图访问网址的应用程序显示一个错误-未授权: 有人知道发生了什么吗?我已经检查了bitbucket上的所有凭据和url。