hashicorp-vault - Hashicorp Vault 读取凭据 - 无法找到名称为 : db_name 的连接条目

标签 hashicorp-vault

我不知道我是否做错了什么。

但这是我的配置。

// payload.json
{
  "plugin_name": "postgresql-database-plugin",
  "allowed_roles": "*",
  "connection_url": "postgresql://{{username}}:{{password}}@for-testing-vault.rds.amazonaws.com:5432/test-app",
  "username": "test",
  "password": "testtest"
}

然后运行这个命令:
curl --header "X-Vault-Token: ..." --request POST --data @payload.json http://ip_add.us-west-1.compute.amazonaws.com:8200/v1/database/config/postgresql

角色配置:
// readonlypayload.json
{
  "db_name": "test-app",
  "creation_statements": ["CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}';
   GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"{{name}}\";"],
  "default_ttl": "1h",
  "max_ttl": "24h"
}

然后运行这个命令:
curl --header "X-Vault-Token: ..." --request POST --data @readonlypayload.json http://ip_add.us-west-1.compute.amazonaws.com:8200/v1/database/roles/readonly

然后创建了一个策略:
path "database/creds/readonly" {
  capabilities = [ "read" ]
}

path "/sys/leases/renew" {
  capabilities = [ "update" ]
}

并运行它以获取 token :
curl --header "X-Vault-Token: ..." --request POST --data '{"policies": ["db_creds"]}' http://ip_add.us-west-1.compute.amazonaws.com:8200/v1/auth/token/create | jq

执行此命令以获取值:
VAULT_TOKEN=... consul-template.exe -template="config.yml.tpl:config.yml" -vault-addr "http://ip_add.us-west-1.compute.amazonaws.com:8200" -log-level debug

然后我收到这个错误:
URL: GET http://ip_add.us-west-1.compute.amazonaws.com:8200/v1/database/creds/readonly
Code: 500. Errors:

* 1 error occurred:
        * failed to find entry for connection with name: "test-app"

任何建议将不胜感激,谢谢!

编辑:也在服务器上尝试过这个命令vault read database/creds/readonly
还在回来
* 1 error occurred:
        * failed to find entry for connection with name: "test-app"

最佳答案

对于通过谷歌搜索此错误消息来到此页面的人,这可能会有所帮助:

不幸的是,Vault 数据库/角色的参数 db_name有点误导。该值需要匹配 database/config/条目,而不是实际的数据库名称本身。 GRANT 语句本身是数据库名称相关的地方,db_name只是对配置名称的引用,它可能与数据库名称匹配,也可能不匹配。 (在我的情况下,配置有其他数据,例如环境前缀数据库名称。)

关于hashicorp-vault - Hashicorp Vault 读取凭据 - 无法找到名称为 : db_name 的连接条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57881184/

相关文章:

hashicorp-vault - 未能创建客户端 : parse "http://127.0.0.1:8200": first path segment in URL cannot contain colon in Hashi-corp Vault

hashicorp-vault - 如何确定给定 token 可以使用 hashcorpVault 中的哪些功能访问哪些路径?

hashicorp-vault - Hashicorp Vault 代理注入(inject)器 : base64 decoding secrets using '' agent-inject-command' annotation

spring-boot - 如何使用 java/spring boot 读取 Vault kv

kubernetes - Kubernetes-证书经理-Hashicorp Vault-证书的就绪状态为空

ssl - TLS 证书主题(CN、OU 和 O)

使用 Vault 后端的配置后, Airflow 部署陷入困境

alpine - 在容器中运行保管库时的"Operation not Permitted"

Kubernetes - cert-manager - 创建使用 Hashicorp Vault 的颁发者时出错

kubernetes-helm - 配置 Vault-Helm PVC