您可以配置每个与 Config Server 对话的 Spring Boot 应用程序,以将其自己的唯一令牌发送到 Config Server,然后将其传递给 Vault。
保险柜将根据定义对该资源的访问权限和授予令牌的权限的策略允许访问所请求的资源。
第 1 步:定义策略。
cat ./rules/application-a.hcl <<EOF
path "secret/application" {
capabilities = ["read", "list"]
}
path "secret/application-a" {
capabilities = ["read", "list"]
}
EOF
第 2 步:将策略写入 Vault。
vault write sys/policy/policy-application-a rules=@./rules/application-a.hcl
第 3 步:使用定义的策略创建令牌。
vault token-create -display-name="My Application A" -policy="policy-application-a"
第 4 步:将一些数据写入 Vault
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 处理从客户端应用程序到 Config Server 再到 Vault 的令牌传输。
对于任何其他应用程序,您可以在 HTTP 请求的标头中设置令牌。
来自 Vault 文档:
https ://www.vaultproject.io/intro/getting-started/apis.html
curl -X GET -H "X-Vault-Token:$VAULT_TOKEN" http://127.0.0.1:8200/v1/secret/application-a
我希望这可以帮助你。