我想使用 Vault 来存储/检索 Google Cloud 上不同项目的机密。 Vault 本身位于其自己的 gcp 项目中。我可以使用 Vault 对多个不同项目的服务帐户进行身份验证吗?
我尝试这样做会因缺少权限而产生错误。
我已检查 Vault 正在使用的服务帐户是否具有
iam.serviceAccountKeys.get
权限。尝试进行身份验证的服务帐户没有成功。
我猜测权限错误是关于尝试查找检查外国项目的服务帐户密钥。
* could not find service account key 'projects/-/serviceAccounts/[email protected]/keys/xxxxxxxxxxxx': googleapi:
Error 403: Permission iam.serviceAccountKeys.get is required to perform this operation on service account key projects/-/serviceAccounts/[email protected]/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进行身份验证吗?
bound_projects
为空或包含您要绑定的所有项目的列表:
$ vault write auth/gcp/config /
bound_projects=p1,p2,p3...
您还需要确保正在运行 Vault 的服务帐户具有以下角色:
roles/iam.serviceAccountKeyAdmin
roles/browser
您需要为正在
向 Vault 进行身份验证的服务帐户授予以下角色:
roles/iam.serviceAccountTokenCreator