取消佈建共用虛擬私有雲

本頁說明如何取消佈建現有的 Shared VPC 設定,並從 Shared VPC 託管專案中斷所有服務專案的連線。取消佈建是單向程序,請先確認您已瞭解Shared VPC佈建 Shared VPC頁面中的說明。

服務專案管理員工作

在連結至共用 VPC 託管專案的各個服務專案中,服務專案管理員必須移除託管專案上的所有依附元件。依附元件可能包括執行個體、執行個體群組、執行個體範本、後端服務和轉送規則。

判斷受影響的資源

如要識別依附於 Shared VPC 託管專案的資源,服務專案管理員可列出該專案的共用子網路。當服務專案從託管專案中卸離後,就無法再使用這些子網路。因此,任何依附於這些子網路的資源都會受到影響。

刪除資源

服務專案管理員識別出會受到取消佈建程序影響的資源後,必須刪除這些資源:

負載平衡器管理員工作

內部應用程式負載平衡器和區域外部應用程式負載平衡器可讓您設定負載平衡器,使一個主機或服務專案中的網址對應,能參照 Shared VPC 環境中多個專案的後端服務 (和後端)。

如要刪除服務專案,請務必先移除服務專案中任何這類跨專案的後端服務參照。負載平衡器管理員必須修改網址對應,移除服務專案中後端服務的參照。

Shared VPC 管理員工作

本節所述的所有工作都必須由共用 VPC 管理員執行。

卸離服務專案

針對要從 Shared VPC 託管專案卸離的各個服務專案,請重複這些步驟。

控制台

如要在 Google Cloud 控制台中查看「Shared VPC」(共用 VPC) 頁面,您必須具備 Shared VPC 管理員角色。

  1. 前往 Google Cloud 控制台的「Shared VPC」(共用 VPC) 頁面。
    前往 Shared VPC
  2. 以共用虛擬私人雲端管理員身分登入。
  3. 選取要移除服務專案的主專案。
  4. 按一下「Attached projects」(附加的專案) 分頁。
  5. 選取要分離的服務專案。
  6. 按一下「Detach Projects」(取消連結專案) 按鈕。
  7. 詳閱對話方塊中的資訊。
  8. 按一下「Detach」(卸離)

gcloud

  1. 如果您尚未以 Shared VPC 管理員身分驗證 gcloud,請立即執行。將 SHARED_VPC_ADMIN 替換為 Shared 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 以保護您的 Shared VPC 管理員帳戶憑證。否則,請略過這個步驟並繼續停用託管專案

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. 卸離服務專案。

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnResource
    {
      "xpnResource": {
        "id": "SERVICE_PROJECT_ID"
      }
    }
    

    將預留位置替換為有效值:

    • HOST_PROJECT_ID 是主專案的 ID。
    • SERVICE_PROJECT_ID 是要分離的服務專案 ID。

    詳情請參閱 projects.disableXpnResource 方法。

  2. 確認服務專案已卸離。

    • 確認服務專案未附加至任何主專案。

      GET https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/getXpnHost
      

      SERVICE_PROJECT_ID 替換為服務專案的 ID。

      詳情請參閱 projects.getXpnHost 方法。

    • 列出附加至 Shared VPC 主專案的服務專案,確認該專案不再列於其中。

      GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
      

      HOST_PROJECT_ID 替換為託管專案的 ID。

      詳情請參閱 projects.getXpnResources 方法。

停用主專案

只有在所有服務專案皆卸離完成後,才能夠停用託管專案的共用 VPC。停用後,系統也會自動移除避免託管專案輕易遭到刪除的防刪除鎖定。

控制台

如要在 Google Cloud 控制台中查看「Shared VPC」(共用 VPC) 頁面,您必須具備 Shared VPC 管理員角色。

  1. 前往 Google Cloud 控制台的「Shared VPC」(共用 VPC) 頁面。
    前往 Shared VPC
  2. 以共用虛擬私人雲端管理員身分登入。
  3. 選取要停用的主專案。
  4. 按一下「停用 Shared VPC」按鈕。
  5. 在對話方塊中仔細閱讀說明。
  6. 在「主專案 ID」中輸入主專案的專案 ID。
  7. 按一下 [停用]。

gcloud

  1. 如果您尚未以 Shared VPC 管理員身分驗證 gcloud,請立即執行。將 SHARED_VPC_ADMIN 替換為 Shared VPC 管理員名稱:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. 停用託管專案的共用虛擬私人雲端。將 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 以保護您的 Shared VPC 管理員帳戶憑證。否則,請略過這個步驟並繼續刪除專案

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. 停用專案的共用虛擬私有雲。

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnHost
    

    HOST_PROJECT_ID 替換為託管專案的 ID。

    詳情請參閱 projects.disableXpnHost 方法。

  2. 列出代管專案,確認該專案未列出。

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
    

    HOST_PROJECT_ID 替換為託管專案的 ID。

    詳情請參閱 projects.listXpnHosts 方法。

刪除專案

本節會探討如何刪除不再使用的專案。舉例來說,您可能需要刪除從託管專案卸離後的服務專案,或是可能不再需要已經停用的託管專案。

刪除託管專案

您可以選擇將託管專案保留為一般專案或將其關閉。 關閉專案會刪除該專案。

如果 IAM 主體具有機構的resourcemanager.projectDeleter角色,或者是主專案的擁有者,就可以刪除主專案。如果共用虛擬私有雲管理員具有適當的角色或擁有權,也可以刪除主專案。

刪除服務專案

如果您不再需要服務專案,可以選擇關閉服務專案。在執行這項作業之前,請確認服務專案已從託管專案中卸離

如果 IAM 主體具有機構的resourcemanager.projectDeleter角色,或是服務專案的擁有者,就可以刪除服務專案。如果服務專案管理員具有適當的角色或擁有權,也可以刪除服務專案。

強制刪除託管專案

如果託管專案正在使用共用 VPC,該專案會設有防刪除鎖定以免專案意外遭到刪除。由於此防刪除鎖定可由專案擁有者移除,因此在佈建共用 VPC 的指南中包含定義機構政策的步驟,能夠用來限制哪些 IAM 主體有權移除專案的防刪除鎖定。

一般來說,在下列工作依序完成「之後」,應刪除託管專案:

  • 所有服務專案都已從託管專案中卸離
  • 共用虛擬私人雲端已經停用

當共用 VPC 停用後,系統會自動移除保護託管專案的防刪除鎖定。

本節會詳細說明如何強制關閉託管專案。只有在發生以下情況時,您才應該考慮採用這個選項:

  • 您無法按照一般步驟卸離服務專案及停用共用虛擬私人雲端。
  • 除了自動新增的防刪除鎖定外,還有其他防刪除鎖定在保護託管專案。

如果強制關閉主專案,且服務專案中有使用 Shared VPC 網路的資源,就會發生下列事件:

  • 所有 Shared VPC 網路、其子網路、路由、防火牆規則及主專案中的所有網路資源都將會遭到刪除。
  • 與主專案連結的服務專案中執行的執行個體等資源會停止。
  • 如果內部 TCP/UDP 負載平衡器的轉送規則依附於 Shared VPC 網路,系統會停用這些負載平衡器。

gcloud

  1. 以能夠移除專案防刪除鎖定的身分與存取權管理主體身分向 gcloud 進行驗證。如果機構政策會限制哪些主體能夠移除防刪除鎖定,則您必須以具有貴機構 resourcemanager.lienModifier 角色的身分與存取權管理主體身分進行驗證。如果您尚未設有這類政策,託管專案的專案擁有者可以移除防刪除鎖定。

    ACCOUNT 替換為適當的身分與存取權管理主體名稱:

    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. 現在可以關閉託管專案。

API

  1. 列出與主專案相關聯的防刪除鎖定。

    GET https://cloudresourcemanager.googleapis.com/v1/liens?parent=projects:HOST_PROJECT_ID
    

    HOST_PROJECT_ID 替換為託管專案的 ID。

    詳情請參閱 liens.list 方法。

  2. 依照名稱一次移除一個防刪除鎖定,直到沒有任何防刪除鎖定存在。

    DELETE https://cloudresourcemanager.googleapis.com/v1/liens/LIEN_NAME
    

    LIEN_NAME 替換為要刪除的防刪除鎖定名稱。

    詳情請參閱 liens.delete 方法。

  3. 再次列出留置權,確認留置權已移除。

疑難排解

無法卸載使用無伺服器 VPC 存取的服務專案

即使您已刪除相關聯的無伺服器 VPC 存取連接器,嘗試卸載已設定無伺服器 VPC 存取的服務專案時,仍可能會收到錯誤訊息。發生這項錯誤的原因是,服務專案中仍有一或多個無伺服器資源與主專案中的 Shared VPC 網路建立關聯。

如要解決這個問題,請從無伺服器資源中移除與無伺服器 VPC 存取連接器的所有關聯:

  1. 如果任何 Cloud Run 服務或函式使用與 Shared VPC 網路相關聯的連接器,請針對每個服務或函式,按照步驟將 Cloud Run 服務與虛擬私有雲網路中斷連線

  2. 如果任何 Cloud Run 作業使用與 Shared VPC 虛擬私有雲網路相關聯的連接器,請針對每項作業,按照步驟將 Cloud Run 作業與虛擬私有雲網路中斷連線

  3. 如果任何 App Engine 服務使用與 Shared VPC 網路相關聯的連接器,請針對每個服務按照步驟將 App Engine 服務與虛擬私有雲網路中斷連線

  4. 將所有無伺服器資源與 VPC 網路中斷連線後,請卸離服務專案

為避免這個問題再次發生,請務必先中斷所有無伺服器資源,再刪除連接器,詳情請參閱「刪除連接器」一文。

在極少數情況下,完成本節步驟後仍可能收到錯誤訊息。如果還是無法刪除虛擬私有雲網路,請與 Cloud Customer Care 聯絡。

後續步驟