Hashicorp Vault for PostgreSQL 动态凭证出错

沙市

我想使用 Vault 为我的 PostgreSQL 数据库生成动态凭据。我做了这里给出的步骤:https : //www.vaultproject.io/docs/secrets/databases/postgresql.html平台版本如下:

执行平台:CentOS Linux 7.3。版本:Vault v1.1.2('0082501623c0b704b87b1fbc84c2d725994bac54')。PostgreSQL 版本:10.6 托管在 AWS RDS 中。

  1. 使用以下命令在开发模式下启动 Vault 服务器:“Vault server -dev”。

  2. 验证我能够使用带有命令的 psql 连接到 PostgreSQL 数据库:“psql -h my-rds-end-point.rds.amazonaws.com -p 5432 -d alerts -U master”

  3. 使用命令启用数据库机密引擎:“保管库机密启用数据库”。

  4. 使用以下命令创建数据库连接配置: A. 在 connection_url 中使用用户名、密码和单独。

[root@vault-server ~]# vault write database/config/my-postgresql-database \
>     plugin_name=postgresql-database-plugin \
>     allowed_roles="my-role" \
>     connection_url="postgresql://master:[email protected]:5432/alerts" \
>     username="master" \
>     password="pg_master_password"
WARNING! The following warnings were returned from Vault:

  * Password found in connection_url, use a templated url to enable root
rotation and prevent read access to password information.

B. 用户名、密码只在 connection_url 中,不能分开。

[root@vault-server ~]# vault write database/config/my-postgresql-database \
>     plugin_name=postgresql-database-plugin \
>     allowed_roles="my-role" \
>     connection_url="postgresql://master:[email protected]:5432/alerts"
WARNING! The following warnings were returned from Vault:

  * Password found in connection_url, use a templated url to enable root rotation and prevent read access to password information.

C. 使用用户名,密码从 connection_url 中删除但单独给出。

[root@vault-server ~]# vault write database/config/my-postgresql-database \
>     plugin_name=postgresql-database-plugin \
>     allowed_roles="my-role" \
> connection_url="postgresql://my-rds-end-point.rds.amazonaws.com:5432/alerts" \
>     username="master" \
>     password="pg_master_password"
Error writing data to database/config/my-postgresql-database: Error making API request.

URL: PUT http://127.0.0.1:8200/v1/database/config/my-postgresql-database
Code: 400. Errors:

* error creating database object: error verifying connection: pq: password authentication failed for user "root"
  1. 使用命令创建角色:
vault write database/roles/my-role \
    db_name=my-postgresql-database \
    creation_statements="CREATE ROLE \"vault_role\" WITH LOGIN PASSWORD 'vault_role_password' VALID UNTIL '2019-06-30'; \
        GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"vault_role\";" \
    default_ttl="1h" \
    max_ttl="24h"
  1. 使用命令查询凭据:
[root@vault-server ~]# vault read database/creds/my-role
Key                Value
---                -----
lease_id           database/creds/my-role/WNdcEQ0YYZODGWzYxikRNztl
lease_duration     1h
lease_renewable    true
password           A1a-T19Eh8eKKGOZCLQt
username           v-root-my-role-qWqOv4j34Sa3rQ3g35nJ-1559024979

观察:

1) 当我尝试使用下面的命令连接到数据库时,它失败了。我虽然 Vault 创建了一个名为“v-root-my-role-qWqOv4j34Sa3rQ3g35nJ-1559024979”的用户。但是,当我以 PostgreSQL 的主人(超级用户)身份登录时执行“\du”时,我没有在用户列表中找到该用户。

[root@vault-server ~]# psql -h my-rds-end-point.rds.amazonaws.com -p 5432 -d alerts -U v-root-my-role-qWqOv4j34Sa3rQ3g35nJ-1559024979
Password for user v-root-my-role-qWqOv4j34Sa3rQ3g35nJ-1559024979:
psql: FATAL:  password authentication failed for user "v-root-my-role-qWqOv4j34Sa3rQ3g35nJ-1559024979"
FATAL:  password authentication failed for user "v-root-my-role-qWqOv4j34Sa3rQ3g35nJ-1559024979"

问题:我在这里缺少什么?如何获得一组有效的凭证(用户名/密码)?Vault 是否真的创建了一个我可以使用“\du”psql 命令看到的用户/角色?

2)当我尝试使用下面的命令获取另一组凭据时,它失败了。

[root@vault-server ~]# vault read database/creds/my-role
Error reading database/creds/my-role: Error making API request.

URL: GET http://127.0.0.1:8200/v1/database/creds/my-role
Code: 500. Errors:

* 1 error occurred:
        * pq: role "vault_role" already exists

问题:我在这里缺少什么?如何获取多个凭据?

3) Step4A, 4B 抛出警告,而 4C 导致错误。上面第 4 步中提到的创建数据库连接配置的正确方法是什么?

我搜索了文档、帮助、互联网、论坛等,但找不到使这个用例工作的方法。

有人可以指导,提供有关如何配置 Vault 以生成动态凭据以作为特定角色连接到 PostgreSQL 的提示吗?

亲切的问候,沙石

沙市

该问题已通过以下此线程中讨论的建议解决:https : //groups.google.com/forum/# ! msg/ vault-tool/ SaEIFGoWmHg/ KWIgXczDBAAJ

结论:参考文档 ( https://www.vaultproject.io/docs/secrets/databases/postgresql.html )中“{{}}”中提到的字段必须保留,即不使用实际值更新。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章