已删除计算引擎默认服务帐户

时间:2016-04-28 08:05:26

标签: google-compute-engine google-kubernetes-engine

我无法在GCE中创建虚拟机..在创建它时显示错误消息,我附上了我的错误消息的屏幕截图..我将简要解释我做了什么..

- >我已经从我的服务帐户列表中删除了我的计算引擎默认服务帐户..稍后我创建了新的服务帐户..

- >创建虚拟机时,我选择了新创建的服务帐户,vm创建失败,但错误显示在服务帐户下找不到已删除的服务帐户ID。

- >创建vm时,它指的是我删除的服务帐户ID ..

现在我需要做什么?是否有任何解决方案可以重新激活我的Compute Engine默认服务帐户。 完全iam击中我现在无法创建新的vms和kubernetes。 enter image description here

4 个答案:

答案 0 :(得分:5)

要恢复您的Google计算默认服务帐户,请在项目中运行以下gcloud命令:

gcloud services enable compute

在以前的版本中,命令是:

gcloud service-management enable compute.googleapis.com

如本期所述:https://issuetracker.google.com/issues/69612457

答案 1 :(得分:1)

您现在可以通过执行如下卷曲请求来“取消删除”服务帐户:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-length: 0" "https://iam.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_ID:undelete"

SERVICE_ACCOUNT_ID是您要恢复的帐户的ID

您可以通过运行以下命令获得服务帐户列表:

gcloud logging read "resource.type=service_account" --freshness=10y

参考: https://cloud.google.com/iam/docs/creating-managing-service-accounts#undeleting_a_service_account

答案 2 :(得分:0)

有两个默认服务帐户,我不确定您指的是哪一个:

  1. Google API服务帐户,在您的情况下称为:933144605699@cloudservices.gserviceaccount.com。这是一个特殊的服务帐户。它始终是创建的,但从未在gcloud或Web控制台中列出。它旨在代表用户使用某些内部Google流程。 GKE可能是使用此帐户的服务之一(我不确定)。 删除此帐户是不可能的,您唯一能做的就是将其从项目中的任何角色中删除。默认情况下,它是Editor。你可以随时添加它。
  2. 默认服务帐户:933144605699-compute@developer.gserviceaccount.com。这是一个普通的服务帐户,您可以删除它。
  3. 在您粘贴的错误消息中,有一个不同的服务帐户名称,是您创建的新帐户名称吗?如果是这种情况,您可能只需要在Web控制台上转到IAM设置,并将您的用户添加到服务帐户actor。请查看本手册页:https://cloud.google.com/compute/docs/access/iam#the_serviceaccountactor_role

答案 3 :(得分:0)

  1. 首先,您需要找到已删除的SERVICE_ACCOUNT_ID。使用记录高级查询的方法是:
resource.type = "service_account"
protoPayload.authorizationInfo.permission = "iam.serviceAccounts.delete"

Example here:

==> unique_id值为SERVICE_ACCOUNT_ID

  1. 使用@ sherief-el-feky提供的API:
curl -X POST -H "Authorization: Bearer $ (gcloud auth print-access-token)" -H "Content-length: 0" https://iam.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_ID : undelete "