取消预配共享 VPC

本页介绍如何取消配置现有共享 VPC 配置,以从共享 VPC 宿主项目中断开所有服务项目。取消配置是一种单向过程。首先请确保您已熟悉共享 VPC 概览预配共享 VPC 页面中的内容。

服务项目管理员任务

在连接到共享 VPC 宿主项目的每个服务项目中,服务项目管理员均必须移除宿主项目上的所有依赖项。此类依赖项包括实例、实例组、实例模板和内部负载平衡的转发规则。

确定受影响的资源

要确定依赖于共享 VPC 宿主项目的资源,服务项目管理员可列出其共享子网。在服务项目与宿主项目分离时,这些子网将不再可用;因此,依赖它们的任何资源都会受到影响。

删除资源

在服务项目管理员确定了将受到取消预配流程影响的资源之后,则需要删除这些资源:

共享 VPC 管理任务

本部分中的所有任务都必须由共享 VPC 管理员执行。

分离服务项目

对于需要从共享 VPC 宿主项目分离的各服务项目,重复执行以下步骤。

gcloud

  1. 如果您尚未以共享 VPC 管理员的身份向 gcloud 进行身份验证,请先执行此操作。将 [SHARED_VPC_ADMIN] 替换为共享 VPC 管理员的名称:

    gcloud auth login [SHARED_VPC_ADMIN]
    
  2. 从宿主项目中分离服务项目。将 [SERVICE_PROJECT_ID] 替换为服务项目的项目 ID,并将 [HOST_PROJECT_ID] 替换为宿主项目的项目 ID。

    gcloud compute shared-vpc associated-projects remove [SERVICE_PROJECT_ID]
        --host-project [HOST_PROJECT_ID]
    
  3. 使用以下命令之一确认服务项目已分离:

    gcloud compute shared-vpc get-host-project [SERVICE_PROJECT_ID]
    
    gcloud compute shared-vpc list-associated-resources [HOST_PROJECT_ID]
    
  4. 如果您只需要分离服务项目,请退出 gcloud 以保护您的共享 VPC 管理员帐号凭据。否则,请跳过此步骤并继续停用宿主项目

    gcloud auth revoke [SHARED_VPC_ADMIN]
    

停用宿主项目

只有在所有服务项目分离后才能为宿主项目停用共享 VPC。停用之时,防止其被轻易删除的安全锁将被自动移除。

gcloud

  1. 如果您尚未以共享 VPC 管理员的身份向 gcloud 进行身份验证,请先执行此操作。将 [SHARED_VPC_ADMIN] 替换为共享 VPC 管理员的名称:

    gcloud auth login [SHARED_VPC_ADMIN]
    
  2. 停用宿主项目的共享 VPC。将 [HOST_PROJECT_ID] 替换为宿主项目的 ID。

    gcloud compute shared-vpc disable [HOST_PROJECT_ID]
    
  3. 确认该项目已不再列为您组织的宿主项目。将 [ORG_ID] 替换为您的组织 ID(通过 gcloud organizations list 确定)。

    gcloud compute shared-vpc organizations list-host-projects [ORG_ID]
    
  4. 如果您只需要停用宿主项目,则可以退出 gcloud 以保护您的共享 VPC 管理员帐号凭据。否则,请跳过此步骤并继续删除项目

    gcloud auth revoke [SHARED_VPC_ADMIN]
    

删除项目

本部分讨论删除不再使用的项目;例如,您可能有一些服务项目在从宿主项目分离后需要删除,或者在停用宿主项目之后,可能不再需要宿主项目。

删除宿主项目

您可以选择将其保存为正常项目或关闭它。关停项目会将其删除。

如果组织中定义的任何 IAM 成员具有组织的 resourcemanager.projectDeleter 角色,或者该成员是宿主项目的所有者,则该成员可以删除宿主项目。如果共享 VPC 管理员具有正确的角色或所有权,则可以删除宿主项目。

删除服务项目

如果您不再需要各服务项目,您可以选择关闭各服务项目。在此之前,请确保服务项目已从宿主项目中分离

如果组织中定义的任何 IAM 成员具有组织的 resourcemanager.projectDeleter 角色,或者该成员是服务项目的所有者,则该成员可以删除服务项目。如果服务项目管理员具有正确的角色或所有权,则可以删除服务项目。

强制删除宿主项目

尽管共享 VPC 对于宿主项目处于活动状态,但项目中会保留安全锁,以防止它被意外删除。由于该安全锁可由项目所有者移除,因此配置共享 VPC 准则中包含相应的步骤,可以定义一项组织政策,限制哪些 IAM 成员能够移除项目安全锁。

通常,应在按照如下顺序完成以下任务之后,再删除宿主项目:

  • 所有服务项目已均从宿主项目中分离,并且
  • 共享 VPC 已被停用

在共享 VPC 被停用时,保护宿主项目的安全锁将被自动移除。

本部分详细介绍如何强行关闭宿主项目。在以下情况下,您仅应考虑此选项:

  • 您不能遵循分离服务项目和停用共享 VPC 的常规步骤操作。
  • 除了自动添加的一个安全锁之外,还有额外的安全锁用于保护宿主项目。

如果强制关停一个宿主项目,而服务项目中的资源正在使用其网络,则会导致以下结果:

  • 宿主项目内的所有共享 VPC 网络、其子网、路由、防火墙规则和所有网络资源都会被删除。
  • 连接到宿主项目的服务项目中正在运行的实例等资源会被停止。
  • 在宿主项目中定义了转发规则的内部负载平衡器将被停用。

gcloud

  1. 作为可以移除项目安全锁的 IAM 成员身份向 gcloud 进行身份验证。如果您的组织政策对哪些成员可以移除安全锁设置了限制,则您必须作为组织中具有 resourcemanager.lienModifier 角色的 IAM 成员进行身份验证。如果您没有落实这样的政策,则宿主项目的项目所有者可以移除安全锁。

    [ACCOUNT] 替换为相应 IAM 成员的名称:

    gcloud auth login [ACCOUNT]
    
  2. 列出与宿主项目相关的安全锁。将 [HOST_PROJECT_ID] 替换为宿主项目的 ID。

    gcloud alpha resource-manager liens list \
    --project [HOST_PROJECT_ID]
    
  3. 按名称逐个移除各安全锁,直至不再有安全锁为止。将 [LIEN_NAME] 替换为要移除的安全锁的名称。

    gcloud alpha resource-manager liens delete [LIEN_NAME] \
    --project [HOST_PROJECT_ID]
    
  4. 确认所有安全锁均已移除。

    gcloud alpha resource-manager liens list \
    --project [HOST_PROJECT_ID]
    
  5. 移除安全锁后,您可以退出 gcloud 以保护有权移除安全锁的 IAM 成员的凭据。

    gcloud auth revoke [ACCOUNT]
    
  6. 现在可以关停宿主项目了。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页