我正在尝试通过模拟已配置所有权限的 VM 服务帐户来通过 SSH 进入 VM。
我使用的命令是:
gcloud compute ssh cowsay \
--command="systemctl status" \
--impersonate-service-account="[email protected]" \
--tunnel-through-iap
最初一切似乎都很好,我可以在调试输出中看到以下内容:
WARNING: This command is using service account impersonation. All API calls will be executed as [[email protected]].
但是,我收到一个错误,提示仍在使用源服务帐户(而不是模拟的帐户)尝试进行 OS 登录:
HttpForbiddenError: HttpError accessing https://oslogin.googleapis.com/v1/users/[email protected]/loginProfile?projectId=cowsay
ERROR: (gcloud.compute.ssh) User [[email protected]] does not have permission to access user [[email protected]] (or it may not exist): End user credentials must match the user specified in the request.
是否可以使用gcloud compute ssh --impersonate-service-account
SSH 进入实例而不授予源账户额外的权限?
答案1
您可以在官方文档:
为了以服务账户身份执行操作,您当前选择的账户必须具有包含服务账户的 iam.serviceAccounts.getAccessToken 权限的 IAM 角色
尝试将该角色添加iam.serviceAccounts.getAccessToken
到您的帐户。