1

我正在尝试应用以下角色绑定以将存储管理员角色授予 Vault 中的 GCP 角色集。

resource "//cloudresourcemanager.googleapis.com/projects/{project_id_number}" {
  roles = [
    "roles/storage.admin"
  ]
}

我想授予对项目级别的访问权限,而不是特定存储桶,以便 GCP 角色集可以访问和读取/写入 Google Container Registry。

当我尝试在 Vault 中创建此角色集时,我收到此错误:

Error writing data to gcp/roleset/my-roleset: Error making API request.

URL: PUT http://127.0.0.1:8200/v1/gcp/roleset/my-roleset
Code: 400. Errors:

* unable to set policy: googleapi: Error 403: The caller does not have permission

我的 Vault 集群在 GKE 集群中运行,该集群具有适用于所有 Cloud API 的 OAuth 范围,我是项目所有者,并且 Vault 使用的服务帐户具有以下权限:

  • Cloud KMS CryptoKey 加密器/解密器
  • 服务帐户参与者
  • 服务帐号管理员
  • 服务帐号密钥管理员
  • 服务帐户令牌创建者
  • 日志编写器
  • 存储管理员
  • 存储对象管理员

我尝试为服务帐户提供编辑者和所有者角色,但我仍然遇到同样的错误。

首先,我是否使用正确的资源在项目级别为存储管理员角色创建角色集?

其次,如果是这样,什么可能导致此权限错误?

4

1 回答 1

0

我之前重新创建了集群并跳过了这一步:

vault write gcp/config credentials=@credentials.json

添加密钥文件解决了这个问题。

也有可能按照在此处创建自定义角色并添加该自定义角色的步骤发挥作用。

于 2019-03-06T18:39:24.283 回答