将应用程序与HashiCorp Vault集成

时间:2020-09-16 04:36:33

标签: hashicorp-vault

一周以来,我一直在为PoC目的探索HashiCorp保险库。我正在尝试设计一个非常简单的系统,其中应用程序使用 role_id secret_id 登录到保管库,该文件具有终身有效期并要求一次性使用数据库凭证。我已成功将数据库与Vault集成在一起,并在传递了策略生成的令牌后,为目标用户创建了新的凭据(用户名和密码)。

现在,我也已经成功为应用程序生成了role_id和secrete_id,当我从库环境中传递此命令时,我将获得用于生成凭据的令牌。

/ # vault write auth/approle/login role_id="9805c2d7-db84-f17f-843a-440e5a797254" secret_id="1cebcd60-5de5-b0a7-f43c-3df69ae274a4"

Key                     Value
---                     -----
token                   s.fMjSkiloNdkNcRPGQfjmzjGN
token_accessor          orQymBllwi81KEXvpKn6cELq
token_duration          1h
token_renewable         true
token_policies          ["apps" "default"]
identity_policies       []
policies                ["apps" "default"]
token_meta_role_name    app-login

之后,以下命令将生成唯一的凭据:

/ # VAULT_TOKEN=s.fMjSkiloNdkNcRPGQfjmzjGN vault read database/creds/readonly
Key                Value
---                -----
lease_id           database/creds/readonly/FD71umy2l3Vd02iIc6ACtumz
lease_duration     1h
lease_renewable    true
password           A1a-KFjVbJQ9DsUwYQ6r
username           v-approle-readonly-mhQ73CzTWBTgVptBmZbh-1600158851

以下是我已密封金库的信息:

Vault operator seal

但是现在,当我尝试使用较早的命令传递role_id和secret_id来生成令牌时,这表明保险库已密封:

/ # vault write auth/approle/login role_id="9805c2d7-db84-f17f-843a-440e5a797254" secret_id="1cebcd60-5de5-b0a7-f43c-3df69ae274a4"
Error writing data to auth/approle/login: Error making API request.

URL: PUT http://127.0.0.1:8200/v1/auth/approle/login
Code: 503. Errors:

* error performing token check: Vault is sealed

那么,应用程序是否必须首先以任何方式解封文件库,然后只有它才能要求提供凭据?而且,如果那样的话,那么开封它是否会破坏使用保管库的全部目的?

欢迎提出有关我的问题的所有建议。

重要说明:我没有使用任何协调器或配置管理工具。用例非常简单。我想在应用程序代码中对role_id和secret_id进行硬编码。

0 个答案:

没有答案