Using Hashicorp Packer with Vault Secret Engine KV2



我正在尝试将打包程序与保管库秘密引擎 kv2 一起使用,但到目前为止我遇到了身份验证/权限错误。我正在尝试从保管库中读取机密,如示例中所示。在我的test.json文件中,我有一个variables对象,里面有一个access_key和一个secret_key键。其中每一个都包含{{ vault/secret/data/Foo/testaccess_key CC_7 。

"variables": {
    "access_key": "{{ vault `/secret/data/Foo/test` `access_key`}}",
    "secret_key": "{{ vault `/secret/data/Foo/test` `secret_key`}}"
}

在 vault 中,我创建了一个令牌(我将其与 packer 一起使用),该令牌具有如下策略:

path "secret/*" {
    capabilities = ["list"]
}
path "secret/data/Foo/test" {
    capabilities = ["read"]
}

根据文档,这应该足以让打包程序能够读取密钥,但是当我运行打包器时,我得到

Error initializing core: error interpolating default value for 'access_key':
template: root:1:3: executing "root" at <vault `/secret/data/...>:
error calling vault: Error reading vault secret: Error making API request.
Permission denied.
URL: GET
https://vault.*******.com/v1/secret/data/Foo/test
Code: 403. Errors:
* 1 error occurred:
    * permission denied

如果我理解正确,问题的原因是策略没有向 packer 授予足够的权限以允许它读取我的密钥。我说的对吗?如果"是",我应该如何修改我的保单?

为您的 Packer 令牌策略尝试这样的事情(不要忘记使用新策略重新制作令牌,您无法更新预先存在的令牌上的策略):

path "secret/*" {
    capabilities = ["list"]
}
path "secret/data/Foo/*" {
    capabilities = ["read"]
}

我一直在学习 Vault,发现每当我专门将策略中的任何路径硬编码到特定机密时,我都会遇到相同的错误。希望这对您有所帮助。本指南详细介绍了如何将 AppRole 身份验证与令牌一起使用,这可能会有所帮助。

最新更新