Google cloud platform 我不小心删除了我在gcp上的服务帐户

Google cloud platform 我不小心删除了我在gcp上的服务帐户,google-cloud-platform,google-compute-engine,Google Cloud Platform,Google Compute Engine,我不小心删除了我在启用compute API时在gcp上创建的服务帐户,现在我多次禁用并启用了它,但没有创建新的服务帐户 现在我得到了这个错误: 服务探索项目)$gcloud计算实例创建mytest 你是指[asia-Southastern 1-b]区域,例如:[mytest](是/否)?YERROR:(gcloud.compute.instances.create)无法获取资源:-资源“不”_exist@invalid-找不到类型为“serviceAccount”的project.iam.gs

我不小心删除了我在启用compute API时在gcp上创建的服务帐户,现在我多次禁用并启用了它,但没有创建新的服务帐户

现在我得到了这个错误:

服务探索项目)$gcloud计算实例创建mytest

你是指[asia-Southastern 1-b]区域,例如:[mytest](是/否)?YERROR:(gcloud.compute.instances.create)无法获取资源:-资源“不”_exist@invalid-找不到类型为“serviceAccount”的project.iam.gserviceaccount.com

停用计算API

服务探索项目)$gcloud计算实例创建mytest 你是指[asia-Southastern 1-b]区域,例如:[mytest](是/否)?Y 错误:(gcloud.compute.instances.create)无法获取资源: -资源“不可用”_exist@invalid-找不到类型为“serviceAccount”的project.iam.gserviceaccount.com

尝试使用:

gcloud beta应用程序修复-将所需的应用程序引擎功能恢复到当前应用程序


要在意外删除计算引擎默认服务帐户后恢复该帐户,必须联系计算引擎团队,如中所述

同时,如果希望继续处理该项目,可以创建另一个服务帐户,并将其与相同的角色关联,例如,计算引擎默认服务帐户所具有的角色

这个名为editor的角色属于基元类型,您可以找到有关它的更多信息

通过这种方式,您将能够创建计算引擎实例。只需遵循以下步骤:

设置一些变量

zone=us-central1-b

PROJECT_NUMBER=$(gcloud projects describe $DEVSHELL_PROJECT_ID --format="value(projectNumber)")

sa_name=no-clone-$PROJECT_NUMBER-compute
创建一个新的服务帐户,并通过向其中添加该服务帐户与上述基本角色之间的绑定来更新project IAM策略

gcloud iam service-accounts create $sa_name --display-name="Work around deletion of Compute Engine default service account"

sa=$(gcloud iam service-accounts list --filter=$sa_name --format="value(email)") 

gcloud projects add-iam-policy-binding $DEVSHELL_PROJECT_ID --member="serviceAccount:$sa" --role="roles/editor"
使用新创建的服务账号创建新实例并进行测试

gcloud compute instances create test01 --zone=$zone --quiet --service-account=$sa

gcloud compute ssh test01 --zone=$zone --command="cat /etc/os-release"

有关身份和访问管理的更多背景信息,请参阅。

它不起作用,要修复功能,它需要与我意外删除的帐户相同的帐户。服务探索项目)$gcloud beta应用程序修复修复应用程序[服务探索项目]…失败。错误:(gcloud.beta.app.repair)找不到应用程序[服务探索项目:修复]:找不到应用程序“服务探索项目”。钱丹_15cse14@cloudshell:~(services exploring project)$我尝试使用创建vm所需的相同权限创建一个新的vm,但仍然显示相同的错误。我在答案中发布的脚本经过测试,可以正常工作。缺少的唯一步骤是第一次启用计算引擎服务和删除由上一个操作创建的计算引擎默认服务帐户。请使用命令
gcloud services list--enabled--filter=Compute.googleapis.com
检查是否启用了计算引擎服务。如果不是,请使用
gcloud services enable compute.googleapis.com
启用它。然后继续执行回答中解释的步骤。如果您有任何错误,请将其与您使用的命令一起发布。