【问题标题】:Can't remove Google Cloud project无法移除 Google Cloud 项目
【发布时间】:2022-01-28 05:34:18
【问题描述】:

我正在使用terraform 为 GCP 上的几个服务创建基础架构。 GCP 将所有基础设施组织在所谓的项目中。我在 terraform 文件中错误地指定了 project_id(实际上我将 project_id 设置为我的 GCP 中已经存在,但 ptoject 名称不同)。计划阶段的 Terraform 成功,但在 apply 之后失败。然后我执行terraform destroy,设置正确的project_id(和名称),再次执行terraform apply,这次成功了。但是当我打开 GCP 控制台时,我看到实际上在项目列表中创建了 2 个项目(一个具有正确的名称和 id,另一个具有一些随机名称:smth like My Project 1234 as name and beaming-light-546562 as id)。现在gcloud projects list command 显示了 3 个项目(这个随机的一个、正确的一个和以前存在的一个)。

问题是我无法从 gcloud 实用程序或 gcp 控制台中删除该“随机”项目。我收到一个错误

<myuser_mail_address> does not have permission to access projects instance or poject doesn't exist

此外,该随机项目未链接到我的结算帐户。

我怎样才能删除那个“随机”项目

编辑

我(帐户所有者)无法删除 ID 为 beaming-light-546562 的项目似乎很奇怪,原因是我无权这样做。还有一个 id 的名称:它类似于技术 docker 用于生成正在运行的容器的名称。我不记得 terraform 有这样的功能。会不会是 gcp 自己生成了这样的随机名称?

【问题讨论】:

  • 您在组织级别或文件夹级别(包含项目的文件夹)中的角色是什么?你必须有一些权限才能列出和删除项目(resourcemanager.projects.list & resourcemanager.projects.delete
  • @AtefHares 在资源管理器中我看到我的项目不属于任何组织(显示了No organization)。在那个随机项目上,我无法查看角色,它说我没有查看权限的权限。在其他 2 个项目中,我有角色所有者(我想这意味着我可以对项目做任何事情)
  • 您在使用terraform创建随机项目时,是否使用了一些服务帐户或您的帐户对GCP进行身份验证?
  • 使用 terraform destroy 命令后需要执行几个步骤,有关删除项目的更多信息,请参阅此documentation清理 部分并参阅到此documentation 了解与项目关联的结算帐户的详细信息。
  • @maks,好像是已知问题b.corp.google.com/issues/191214686,你可能是通过群组加入到项目中的,所以出现在项目列表中。但是,您没有被授予修改该项目的 IAM 的权限,因此您无法从权限列表中删除该组。您可以在groups.google.com/my-groups 中找到您所属的群组。注意:您可以离开组以失去访问权限,但可能会出现您的电子邮件被添加到单个角色/权限并且您无法将自己从 IAM 列表中删除的情况。

标签: google-cloud-platform terraform terraform-provider-gcp


【解决方案1】:

我尝试重新创建错误,即我创建了一个示例项目(通过控制台)并使用此命令在云运行中删除了相同的示例项目 gcloud projects delete &lt;project ID&gt; 并再次尝试在云运行中删除相同的示例项目并收到此错误消息:

您可以交叉验证图像中列出的原因,即 PROJECT_DELETE_INACTIVE 是否存在于您的gcloud projects delete &lt;project ID&gt; 命令的输出中。这意味着该项目处于非活动状态,并且该项目在被删除时变为非活动状态.

来自document: 项目完全删除大约需要 30 天,在 30 天期限结束时,项目及其所有资源将被删除且无法恢复。

编辑

这似乎是 GCP 的一个已知问题。离开与 GCP 相关的“Google 群组”可以解决此问题。您可以跟踪此Public Issue 了解更多信息。

您可能已通过组添加到项目中,因此它显示在项目列表中。但是,您没有被授予修改该项目的 IAM 的权限,因此您无法从权限列表中删除该组。

作为一种解决方法,您可以离开与 GCP 相关的“Google 网上论坛”并重新加载 GCP 控制台网页,这样您的所有未知/无法访问的项目都会从项目列表中消失。您可以使用 Google Groups link 找到您所属的群组。

注意:您可以离开组以失去访问权限,但可能会出现您的电子邮件被添加到单个角色/权限并且您无法将自己从 IAM 列表中删除的情况。

【讨论】:

  • ERROR: (gcloud.projects.delete) User [my_email_address] does not have permission to access projects instance [beaming-light-546562] (or it may not exist): The caller does not have permission。这是当我执行gcloud projects delete beaming-light-546562 时打印的完整消息(当我执行gcloud projects list 时会向我显示此项目ID)。所以我的错误信息和你的有点不同
  • 我主要担心的是它显示在活动项目列表中(我假设没有任何标志的命令gcloud projects list 显示活动项目)
  • @maks,转到管理结算帐户页面并选择我的项目标签。您将看到一个表格,其中列出了您的所有项目,以及相关的帐单帐户名称和帐单帐户 ID。如果计费帐户未与项目关联,则在计费帐户列中,您将看到“计费已禁用”。仅供参考,如果项目被删除,计费帐户将在一天内与项目断开连接。因此,请确认该项目是否与任何结算帐户相关联。
  • @maks,请参阅此document 以获取有关与项目关联的计费帐户的更多信息。我们无法删除与其他计费帐户关联的项目,如果是这种情况,那么首先您需要将与项目关联的计费帐户更改为您的计费帐户,然后尝试删除该项目。请参阅此document 更改结算帐户。
猜你喜欢
  • 2020-02-23
  • 2020-01-02
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
  • 2014-10-31
  • 2015-07-25
相关资源
最近更新 更多