不是为Spring Cloud Config Server提供一个AppRole或Static令牌来访问所有应用程序的所有机密,是否可以配置Spring Cloud Vault Config来在配置请求中使用给定的令牌?
这种通信将通过带有标头中的令牌的双向SSL进行。向外发送这样的令牌并不理想,但在这种情况下似乎是合适的解决方案。
请记住,这是一个Spring Cloud Config服务器,它使用Git+Vault作为后端,以便将秘密、变量等解析为所需的配置。这不仅适用于Spring配置,还适用于交付给临时环境的其他文件,比如Apache的httpd.conf(这是一个不太好的例子)
这里的目标是在可能的情况下限制访问,并将其限制在请求配置的最终应用程序。在Spring配置和Vault策略上不要重复使用AuthZ的RBAC工作也很好。
您可以将每个与配置服务器对话的Spring Boot应用程序配置为将其自己的唯一令牌发送到配置服务器,然后将其传递到Vault。
Vault将根据定义访问该资源的策略和授予令牌的权限,允许访问所请求的资源。
步骤1:定义策略。
cat ./rules/application-a.hcl <<EOF
path "secret/application" {
capabilities = ["read", "list"]
}
path "secret/application-a" {
capabilities = ["read", "list"]
}
EOF
vault write sys/policy/policy-application-a rules=@./rules/application-a.hcl
vault token-create -display-name="My Application A" -policy="policy-application-a"
vault write secret/application-a @application-a-config.json
步骤5:配置Spring Boot应用程序以使用它的令牌。
使用上面步骤3中创建的令牌。在应用程序的bootstrap.yml文件中设置后续操作。如果您在容器化的环境中运行,您也可以在运行时传递此内容。
spring:
cloud:
config:
uri: https://configserver:8888/
token: <secret token>
Spring处理令牌从客户机应用程序到配置服务器再到Vault的传输。
curl -X GET -H "X-Vault-Token:$VAULT_TOKEN" http://127.0.0.1:8200/v1/secret/application-a
我希望这对你有帮助。
我试图修改我们目前的Spring云配置服务器,它只有一个JDBC后端,以包括一个保险库后端,以使JDBC连接证书保密。 库: bootstrap.yml 应用程序. yml 没有从vault中检索spring.datasource用户名和密码。
我正在使用Spring Cloud Config Server为我的客户端应用程序提供配置。为了方便机密配置,我使用HashiCorp Vault作为后端。对于其余的配置,我使用GIT repo。因此,我在复合模式下配置了配置服务器。请参阅我的配置服务器引导。yml如下:- 这一切都按预期工作。但是,我使用的代币使用Vault auth策略进行保护。见下文:- 我的问题是,我没有在所有这些范围内存
null 检索存储在Spring Cloud Config中的配置,包括Vault令牌。 使用Vault令牌连接到Spring Cloud Vault,然后检索存储在Spring Cloud Vault中的配置。 bootstrap.properties: Spring Cloud配置服务器: 如果是,我们是否需要设置属性检索的顺序?即。为Spring Cloud Vault设置。Spring C
我是HashiCorp Vault的新手,并设置了Spring云配置服务器,将Vault作为存储机密,密钥等的后端。 问题是我能够访问默认级别存储的机密,例如: 但是,我无法访问我存储在Vault中的配置文件特定机密。无论我将机密存储在哪个配置文件中,API始终返回默认值而不是配置文件特定值。 例如: 以下是存储在Vault开发实例(1.1.3版)上的秘密: Spring云配置服务器applica
我们正在使用SpringCloud2.2。6.RELEASE使用vault存储我们的微服务,我们的vault团队对请求数量表示不满,他们提供了Splunk日志访问,我看到许多请求如下: 我确实看到了对秘密/数据/应用程序等的正常请求,但是为什么会有对秘密/数据/应用程序的请求呢? 关于如何或在哪里制作这个有什么想法吗?
我想设置一个能够使用Vault和git作为配置后端的配置服务器。我不太明白有关配置的一些事情: 为什么我需要设置<code>spring.cloud.config.server。vault和? 我真的需要两个都设置吗? 它们之间的区别是什么? 我只希望我的客户能够直接从配置服务器获取配置,而不管Vault是否存在。 因此,客户端仅在配置服务器上请求,并且配置服务器被用于从Vault获取机密。