本頁說明如何將 Google Cloud 專案從一個機構資源遷移至另一個機構資源,或從沒有機構資源的狀態遷移至有機構資源的狀態。
如要遷移專案,請務必確認您具備正確的 (Identity and Access Management (IAM)) 權限,且來源和目的地資源都已設定特定組織政策。
事前準備
專案遷移作業屬於跨機構作業。為防止資源未經授權移動,您必須符合下列條件。
必要的角色
如要取得在組織資源之間遷移專案所需的權限,請要求管理員授予您下列 IAM 角色:
-
您要在機構資源之間遷移的專案,其專案 IAM 管理員 (
roles/resourcemanager.projectIamAdmin) -
專案移動者 (
roles/resourcemanager.projectMover) 專案父項資源 (資料夾或機構資源) 的權限 -
如果目的地資源是資料夾:
目的地資源的專案移動者 (
roles/resourcemanager.projectMover) -
如果目的地資源是機構:
目的地資源的專案建立者 (
roles/resourcemanager.projectCreator)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
您必須在來源和目標機構中,將這些角色指派給同一個使用者帳戶。 這些預先定義的角色具備遷移專案所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分。
所需權限
如要遷移專案,必須具備下列權限:
- 要遷移專案的
resourcemanager.projects.getIamPolicy權限 (在機構資源之間遷移) - 在要遷移專案的機構資源上按一下
resourcemanager.projects.update - 專案的父項資源 (資料夾或機構資源)
resourcemanager.projects.move - 如果目的地資源是資料夾:
resourcemanager.projects.move目的地資源 - 如果目的地資源是機構資源:
resourcemanager.projects.create目的地資源 - 如要遷移未與機構建立關聯的專案:在要遷移的專案上按一下
resourcemanager.projects.setIamPolicy
您也可以透過自訂角色或其他預先定義的角色取得這些權限。
必要組織政策
根據預設,專案遷移作業會受到限制。您必須在兩個機構的根層級設定組織政策,明確允許匯出及匯入作業。如要設定遷移作業所需的組織政策,您必須具備上層和目標機構的 roles/orgPolicy.policyAdmin 角色。
在來源機構資源中設定
constraints/resourcemanager.allowedExportDestinations政策。將目的地機構的 ID 新增為允許值。在目標機構資源中:設定
constraints/resourcemanager.allowedImportSources政策。 將來源機構的 ID 新增為允許值。
執行遷移作業
授予權限並強制執行政策後,您可以使用 Google Cloud CLI 或 Resource Manager API 遷移專案。
gcloud
如要將專案遷移至其他機構資源,請執行下列指令:
gcloud beta projects move PROJECT_ID \
--organization ORGANIZATION_ID
您也可以使用下列指令,將資料夾指定為目標資源:
gcloud beta projects move PROJECT_ID \
--folder FOLDER_ID
替換下列欄位:
- PROJECT_ID:要遷移的專案 ID 或編號。
- ORGANIZATION_ID:您要將專案移至的機構資源 ID。
- FOLDER_ID:要將專案移至的資料夾 ID。
您只能指定一個目標,也就是資料夾或機構資源。
API
透過 v1 Resource Manager API,您就能將專案的 parent 欄位設為目的地資源的 ID,藉此在機構資源之間遷移專案。
如要遷移專案,請按照下列步驟操作:
- 使用
projects.get()方法取得project物件。 - 將
parent欄位更新為目的地資源 ID。 - 執行
projects.update()方法。
以下程式碼片段會示範這些步驟:
project = crm.projects().get(projectId=flags.projectId).execute()
project['parent'] = {
'type': 'organization',
'id': flags.organizationId
}
project = crm.projects().update(
projectId=flags.projectId, body=project).execute()
遷移後工作
專案遷移成功後,您必須執行幾項遷移後工作,確保作業持續運作、符合安全法規,以及帳單正確無誤。遷移專案會變更資源階層,進而影響沿用的權限和機構層級政策。
以下是遷移後可以完成的步驟:
政策驗證:確認專案是否從新的上層專案沿用預期的組織政策。
存取控管:稽核 IAM 角色,確保新機構中的使用者擁有必要存取權。
帳單:如果專案需要向目標機構收費,請更新帳單帳戶。 這個步驟可以省略。詳情請參閱「變更專案的帳單帳戶」和「在組織資源之間遷移帳單帳戶」。
清除:撤銷臨時專案移動者角色,並移除
allowedExportDestinations和allowedImportSources限制條件。
變更專案的帳單帳戶
Cloud Billing 帳戶可以跨越機構資源使用,將專案從一個機構資源遷移到另一個機構資源並不會影響計費方式。我們會繼續向舊有帳單帳戶收費,不過,在機構資源之間遷移專案時,通常也包括要求遷移到新帳單帳戶。
如要變更帳單帳戶,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「帳單」頁面。
前往「帳單」頁面 - 按一下您要變更的帳單帳戶名稱。
- 在「Projects linked to this billing account」(這個帳單帳戶的連結專案) 下方,找到要遷移的專案名稱,然後按一下右側的選單按鈕。
- 按一下 [Change billing] (變更帳單),然後選取新的帳單帳戶。
- 按一下 [Set account] (設定帳戶)。
系統會向舊有帳單帳戶收取已產生但尚未列於交易記錄中的費用,這可能包括專案遷移前最多兩天的費用。
在機構資源之間遷移帳單帳戶
帳單帳戶可以從一個機構資源遷移到另一個機構資源,但這通常不是必要的步驟。大多數現有機構資源都已經有現成的帳單帳戶,我們建議您善加利用。
如果新的帳單帳戶未與任何機構資源建立關聯,您必須取得帳單帳戶的 roles/billing.admin 角色,以及要與帳單帳戶建立關聯的機構資源的 roles/billing.admin 和 roles/billing.creator 角色。
如要遷移現有帳單帳戶,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「帳單」頁面。
前往「帳單」頁面 - 按一下要遷移的帳單帳戶名稱。
- 在「帳戶管理」頁面頂端,按一下「變更機構」。
- 選取目的地機構資源,然後按一下「確定」。
帳單帳戶現在會與指定的機構資源相關聯。
復原遷移作業
如果誤將專案遷移至錯誤位置,可以再次執行遷移作業,將舊來源設為新目的地,舊目的地設為新來源,即可復原作業。您必須具備必要的 IAM 權限,並強制執行組織政策,才能允許這項作業,就像是全新的遷移作業一樣。
如要還原遷移作業,請按照下列步驟操作:
- 在組織政策中交換來源和目的地 ID (
allowedExportDestinations和allowedImportSources)。 - 重複執行遷移指令,將專案移回原始來源 ID。