GCP 模拟服务帐户通过 IAP 通过 SSH 进入虚拟机

GCP 模拟服务帐户通过 IAP 通过 SSH 进入虚拟机

我正在尝试通过模拟已配置所有权限的 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-accountSSH 进入实例而不授予源账户额外的权限?

答案1

您可以在官方文档

为了以服务账户身份执行操作,您当前选择的账户必须具有包含服务账户的 iam.serviceAccounts.getAccessToken 权限的 IAM 角色

尝试将该角色添加iam.serviceAccounts.getAccessToken到您的帐户。

相关内容