使用带有服务令牌的java应用程序从hashicorp vault获取机密

使用带有服务令牌的java应用程序从hashicorp vault获取机密,java,spring,spring-boot,spring-cloud-config,hashicorp-vault,Java,Spring,Spring Boot,Spring Cloud Config,Hashicorp Vault,也许有人能帮我理解我错过了什么 我用它来建立云配置服务,用另一个spring应用程序来获取一些秘密 如果我使用roottoken,一切都正常工作 但一旦我用策略创建服务令牌 path "secret/data/test*" { capabilities = ["create", "read", "update", "delete", "list"] } path "secret/test*" { capabilities = ["create", "read", "update", "

也许有人能帮我理解我错过了什么

我用它来建立云配置服务,用另一个spring应用程序来获取一些秘密

如果我使用
root
token,一切都正常工作

但一旦我用策略创建
服务
令牌

path "secret/data/test*" {
  capabilities = ["create", "read", "update", "delete", "list"]
}

path "secret/test*" {
  capabilities = ["create", "read", "update", "delete", "list"]
}
我可以用

$ vault token capabilities secret/test
create, delete, list, read, update
卷曲

$ curl \
--header "X-Vault-Token: $VAULT_TOKEN" \
http://<dns-name>:8200/v1/secret/data/test | jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   302  100   302    0     0   2796      0 --:--:-- --:--:-- --:--:--  2796
{
  "request_id": "44b5fdcf-a13c-8e12-83f3-a5064f25257d",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": {
    "data": {
      "test-key": "test-value"
    },
    "metadata": {
      "created_time": "2020-04-09T21:11:28.899688798Z",
      "deletion_time": "",
      "destroyed": false,
      "version": 1
    }
  },
  "wrap_info": null,
  "warnings": null,
  "auth": null
}
$curl\
--标题“X-Vault-Token:$Vault\U Token”\
http://:8200/v1/secret/data/test | jq。
%总接收百分比%x平均速度时间电流
数据加载上载总左速度
100   302  100   302    0     0   2796      0 --:--:-- --:--:-- --:--:--  2796
{
“请求id”:“44b5fdcf-a13c-8e12-83f3-a5064f25257d”,
“租赁id”:“租赁”,
“可更新”:错误,
“租赁期限”:0,
“数据”:{
“数据”:{
“测试键”:“测试值”
},
“元数据”:{
“创建时间”:“2020-04-09T21:11:28.899688798Z”,
“删除时间”:“,
“销毁”:错误,
“版本”:1
}
},
“包装信息”:空,
“警告”:空,
“auth”:空
}
但一旦我开始在应用程序中使用这个令牌,它就会返回

2020-04-10 13:38:43.186 DEBUG 43843 --- [nio-8888-exec-1] org.apache.http.wire: http-outgoing-0 >> “GET /v1/secret/data/test HTTP/1.1[\r][\n]”
http-outgoing-0 >> “X-Vault-Token: <TOKEN>[\r][\n]”
Response 403 FORBIDDEN
2020-04-10 13:38:43.186调试43843---[nio-8888-exec-1]org.apache.http.wire:http-outgoing-0>“GET/v1/secret/data/test http/1.1[\r][\n]”
http-outgoing-0>>“X-Vault-Token:[\r][\n]”
答复403禁止

听起来应用程序没有正确附加凭据。尝试访问一个像这样的站点。 将返回它收到的请求。这是调试这些服务的简单方法


如果您担心这些凭据,也可以在本地托管该站点。

听起来应用程序没有正确附加凭据。尝试访问一个像这样的站点。 将返回它收到的请求。这是调试这些服务的简单方法


如果您担心这些凭据,也可以在本地托管该站点。

谢谢,对于这一点,我将尝试一下。嗯,我会试试这个,但很奇怪,在互联网上我没有找到任何关于这种实现的信息,而且很难调试它。我发现一件事,如果我添加空的
secret/application/
,它将开始使用我新创建的策略从保险库获取数据。谢谢,对于这一点,我将尝试一下。嗯,我会试试这个,但很奇怪,在互联网上我没有找到任何关于这种实现的信息,而且很难调试。我发现一件事,如果我添加空的
secret/application/
,它将使用我新创建的策略从vault中获取数据。我对spring不太了解,这可能是错误的,但我希望
“X-vault-Token:[\r][\n]”
成为
“X-vault-Token:
我想如果你是对的,这对
root
token也不起作用,因为您可以在github中看到线程我对spring不太了解,这可能是错误的,但我希望
“X-Vault-token:[\r][\n]”
“X-Vault-token:”
我想如果您是对的,这对
root
token也不起作用,因此您可以在github中看到线程