尝试使用 GCP IAM 身份验证从 Vault 读取机密时出现 403 Permission Denied

403 Permission Denied when trying to read Secrets from Vault using GCP IAM auth

我正在使用 GCP IAM 身份验证方法对保管库进行身份验证。我按照 vault gcp auth 中建议的步骤使用服务帐户进行身份验证

我能够成功验证和登录。但是当我尝试从指定路径读取机密时,它说权限被拒绝。

$vi test-policy.hcl

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

我的服务帐户分配了以下角色。

  1. 服务帐户管理员
  2. 服务帐户密钥管理员
  3. 服务帐户令牌创建者
vault kv get secret/test/awskeys
Error reading secret/data/test/awskeys: Error making API request.

URL: GET http://127.0.0.1:8200/v1/secret/data/test/awskeys
Code: 403. Errors:

* 1 error occurred:
* permission denied

我在使用 spring-cloud-vault 应用程序时也遇到了同样的问题。是否有任何角色我错过了分配给此服务帐户,或者我是否设置了错误的策略?

注意:Vault 服务器是在 AWS 上设置的。

这是策略设置。我将其更新到下面并且有效!具体路径而不是 *.

path "secret/data/test/awskeys" {
  capabilities = ["read"]
}