【问题标题】:How to link a google cloud vm to an instance schedule?如何将谷歌云虚拟机链接到实例计划?
【发布时间】:2021-10-06 18:12:49
【问题描述】:
我想每天在特定时间运行我的谷歌云服务器。我为此设置了一个实例计划,但是当我尝试将我的虚拟机链接到计划时,它给了我以下错误:
Compute Engine System service account service-390738840624@compute-system.iam.gserviceaccount.com needs to have [compute.instances.start] permissions applied in order to perform this operation.
有人知道怎么解决吗?
【问题讨论】:
标签:
google-cloud-platform
google-compute-engine
service-accounts
google-iam
google-cloud-iam
【解决方案1】:
服务帐户 service-390738840624@compute-system.iam.gserviceaccount.com 没有具有 compute.instances.start 权限的角色。
以下 IAM 角色具有所需的权限:
- roles/compute.instanceAdmin
- roles/compute.instanceAdmin.v1
以下命令会将第一个角色添加到服务帐户:
将 $PROJECT_ID 替换为您的项目 ID(不是项目名称)。
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:service-390738840624@compute-system.iam.gserviceaccount.com \
--role roles/compute.instanceAdmin
您为其运行命令的账户必须有权授予/修改服务账户上的 IAM 角色。如果您没有正确的权限,则需要请项目所有者或编辑为您执行此操作。
【解决方案2】:
为了完成任务,GCP 要求您授予服务帐户 “service-390738840624@compute-system.iam.gserviceaccount.com” 使用 “compute. instance.start”,但服务帐户没有执行任务的正确权限。
当您将实例设置为作为服务帐号运行时,您确定
您的 IAM 角色对服务账户的访问级别
授予服务帐户。如果服务帐号没有 IAM 角色,
那么服务帐户不能在其上运行任何 API 方法
实例。
要授予、更改和撤销对单个服务帐户的访问权限,请参阅this guide。
请注意,要管理对服务帐号的访问权限,您需要一个包含以下权限的角色:
- *iam.serviceAccounts.get
- iam.serviceAccounts.list
- iam.serviceAccounts.getIamPolicy
- iam.serviceAccounts.setIamPolicy*
如果您想知道您的帐户中包含哪些权限,请参考this guide。
如果您没有适当的权限来授予权限,请咨询您的系统管理员。
如需了解更多计算引擎角色和权限,请follow this link。
如果您想了解更多关于服务帐户的信息,请follow this link。
如需了解更多关于使用 Google Scheduler 调度计算实例的流程,请follow this link。