我可以从多个Google云项目中对用户进行身份验证吗?保险柜的auth / gcp

时间:2019-07-15 01:47:59

标签: google-cloud-platform hashicorp-vault

我想使用保险柜在Google Cloud上存储/检索不同项目的机密。保险柜本身位于自己的gcp项目中。我可以使用保险柜验证多个不同项目的服务帐户吗?

我这样做的尝试是在缺少权限时产生错误。

我已检查保险柜使用的服务帐户是否具有iam.serviceAccountKeys.get权限。尝试通过身份验证的服务帐户没有。

我猜测权限错误是关于尝试检查外部项目的服务帐户密钥。

* could not find service account key 'projects/-/serviceAccounts/name@project.iam.gserviceaccount.com/keys/xxxxxxxxxxxx': googleapi: 

Error 403: Permission iam.serviceAccountKeys.get is required to perform this operation on service account key projects/-/serviceAccounts/name@project.iam.gserviceaccount.com/keys/xxxxxxxxxxxxxxx., forbidden or could not find Google Oauth cert with given 'kid' id xxxxxxxxxxxxxxxxxxx: could not find public key with kid 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

iam.serviceAccountKeys.get仅允许对项目中的ID进行身份验证吗?

1 个答案:

答案 0 :(得分:0)

是的,您需要确保bound_projects为空或包含要绑定的所有项目的列表:

$ vault write auth/gcp/config /
    bound_projects=p1,p2,p3...

您还需要确保正在运行保险柜 has the following roles的服务帐户:

roles/iam.serviceAccountKeyAdmin
roles/browser

您需要为对保险柜进行身份验证的服务帐户赋予以下角色:

roles/iam.serviceAccountTokenCreator