我想使用保险柜在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进行身份验证吗?
答案 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