Shared VPC 可讓機構將多項專案的資源連線至通用的虛擬私有雲網路,以便使用該網路的內部 IP 安全高效地相互通訊。
使用 Shared VPC 時,您必須先將其中一項專案指派為「Shared VPC 主機專案」,然後再另外附加一或多項「服務專案」。共用虛擬私有雲主專案中的虛擬私有雲網路稱為「Shared VPC 網路」。服務專案中符合條件的資源皆能使用共用虛擬私有雲網路的子網路。
搭配使用 Shared VPC 與 Migrate to Virtual Machines
如果 Migrate to Virtual Machines 環境使用 Shared VPC,請務必正確設定權限,才能將遷移的 VM 部署至 Compute Engine 目標專案。
舉例來說,假設您有下列環境:
- 專案 A - Migrate to Virtual Machines 主專案
- 專案 B - Shared VPC 主專案和子網路定義
- 專案 C - Migrate to Virtual Machines 目標專案和 Shared VPC 服務專案
在本範例中,您會在專案 B 中定義 Shared VPC。專案 B 稱為 Shared VPC 主機專案。
然後將 VM 遷移至專案 C 中的 Compute Engine 執行個體 (即 Migrate to Virtual Machines 目標專案),專案 C 即可存取 Shared VPC。在本範例中,專案 C 稱為 Shared VPC 服務專案。如要部署 Compute Engine 執行個體,您必須先按照「佈建 Shared VPC」一文中的說明,將專案 C 設定為專案 B 的服務專案。
不過,部署 Compute Engine 執行個體前,您也必須確保專案 A 的 Migrate to Virtual Machines 預設服務帳戶具備必要權限。具體來說,如要使用 Migrate to Virtual Machines,您必須具備 Shared VPC 主專案中子網路的「compute.networkUser」角色。
下一節說明如何設定 Migrate to Virtual Machines 預設服務帳戶。
設定 Shared VPC 所需的權限
如要在 3 個專案的設定中 (「Migrate to Virtual Machines」主專案、「Migrate to Virtual Machines」目標專案和「Shared VPC」主專案),透過Google Cloud 控制台使用 Shared VPC 子網路設定目標詳細資料,您必須具備下列 IAM 權限:
- 共用虛擬私有雲主專案 (或特定目標子網路) 的Compute Network User (
roles/compute.networkUser)。 - 在 Migrate to Virtual Machines 目標專案中,授予「Compute 網路檢視者」 (
roles/compute.networkViewer) 角色。
如果沒有這些權限,您就無法在「遷移至虛擬機器」目標設定使用者介面中查看或選取共用 VPC 子網路,即使您有權使用這些子網路建立獨立的 VM 也是如此。
設定 Migrate to Virtual Machines 預設服務帳戶
如「安裝 Migrate 連接器」一文所述,建立第一個遷移作業時,系統會在主專案中建立預設服務帳戶。
如要將 Compute Engine 執行個體部署至可存取 Shared VPC 的目標專案,您必須在 Shared VPC 主專案的子網路中,將 compute.networkUser 角色新增至 Migrate to Virtual Machines 預設服務帳戶。新增這個角色的方法有兩種:
將 Migrate to Virtual Machines 預設服務帳戶指派為「服務專案管理員」,並只授予 Shared VPC 主專案中部分子網路的存取權。這個選項提供精細的方法來定義服務專案管理員,讓您只針對共用虛擬私有雲主專案中的部分子網路將
compute.networkUser角色授予這些管理員。如需這個程序的步驟,請參閱「部分子網路的服務專案管理員」。
允許 Migrate to Virtual Machines 預設服務帳戶成為「服務專案管理員」,並授予 Shared VPC 主專案中所有子網路的存取權。在本例中,您要將共用 VPC 主專案的
compute.networkUser角色授予 Migrate to Virtual Machines 預設服務帳戶。這樣一來,預設服務帳戶就能存取 Shared VPC 主專案中所有現有和日後的子網路。
如要設定 Migrate to Virtual Machines 預設服務帳戶,以便存取 Shared VPC 主專案中的所有子網路,請按照下列步驟操作:
在 Google Cloud 控制台中開啟「Migrate to Virtual Machines」(遷移至虛擬機器) 頁面:
選取「目標」分頁標籤。
頁面頂端的資訊方塊會顯示 Migrate to Virtual Machines 預設服務帳戶的電子郵件地址,格式如下:
service-M4CE_HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com複製電子郵件地址。
使用該電子郵件地址,將共用虛擬私有雲主專案的
compute.networkUser角色授予 Migrate to Virtual Machines 預設服務帳戶:gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \ --member=serviceAccount:service-M4CE_HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com \ --role=roles/compute.networkUser
如要進一步瞭解如何將角色和權限指派給使用者帳戶,請參閱「授予、變更及撤銷資源的存取權」。