【GCP常見問題】如何將專案由原機構轉移至另一個機構?

我要如何將專案從A機構轉移到B機構?

情境

我們是一間遊戲開發商,一般來說在接到發行商的案子後,我們會在我們的機構內新建立一個專案,待專案完成合約到期後再將該專案權限轉交回到發行商。

目前我們遇到的狀況是不知道如何將我們機構底下的專案轉移至發行商的機構,也不確定是否可以這樣轉移?

操作

首先,機構中的專案是「可以」轉移到另一個機構中的,但是「無法」自行將機構中的專案移出機構 (變成無機構的專案)。若有這類需求,需要透過 Google 後台來進行,建議可以洽詢代理商協助。

此篇文章將說明如何將專案在機構與機構之間轉移。

所需的 IAM 權限

要執行專案轉移的使用者,必須

  1. 在來源機構 (的 機構層級) 擁有 “專案移動者” 或 “專案擁有者” 角色 (需確定有繼承到要搬遷的那個專案上,否則要額外再加上去)
  2. 在目標機構 (的 機構層級 ) 擁有 “專案建立者” 角色 (只有 專案擁有者 或 機構管理員 的話都沒用)

步驟

需要分別進入兩個 機構 的 IAM > 機構政策:

1. 在來源機構的部分,選擇 “允許匯出資源的目的地” > 編輯

  • 套用對象 - 選擇 自訂;
  • 政策強制執行 - 選擇 與父項合併
  • 規則 > 新增規則 -
    • 政策值 - 自訂;
    • 政策類型 - Allow 允許;
  • 自訂值 - 輸入
1under:organizations/[DESTINATION_ORGANIZATION_ID]
  • 完成 > 儲存

2. 在目標機構的部分,選擇 “允許匯入資源的來源” > 編輯

  • 套用對象 - 自訂;
  • 政策強制執行 - 與父項合併
  • 規則 > 新增規則 -
    • 政策值 - 自訂;
    • 政策類型 - 允許;
  • 自訂值 - 輸入
1under:organizations/[SOURCE_ORGANIZATION_ID]
  • 完成 > 儲存

*提醒您記得要將 [DESTINATION_ORGANIZATION_ID][SOURCE_ORGANIZATION_ID] 改為真實機構 ID

最後,開啟 Cloud Shell 執行以下指令即可完成轉移:

1$ gcloud beta projects move [SOURCE_PROJECT_ID] --organization [DESTINATION_ORGANIZATION_ID]

您可以透過以下指令確認專案是否成功搬遷

1$ gcloud projects describe [PROJECT_ID]

確認顯示的 ID 是否為目標機構的 ID,若是的話就代表成功!

同時,在專案遷移期間不要使用下面列出的所有功能,以確保一旦從當前組織中刪除該專案後它不會運作異常。如果該專案有用到機構政策請停用它。如果專案資源位於資料夾層級下,請移動它至直接位於您的組織資源下。

  • Shared VPC
  • IAM Custom Roles
  • Organization Policy
  • Folders

參考文件

[1] https://cloud.google.com/resource-manager/docs/perform-migration

訂閱 CloudMile 電子報

所有 CloudMile 最新消息、產品動態、活動資訊和特別優惠,立即掌握。