本文包含「遷移至虛擬機器」所需的不同角色和權限參考資料。在 Google Cloud中,角色和權限通常會與服務帳戶或使用者帳戶建立關聯。
以下各節將依據「遷移至虛擬機器」的主要元件,說明這些角色和權限:
此外,Cloud Identity and Access Management (IAM) 包含兩個預先定義角色,可用來控管貴機構使用者的存取權。
角色 | 名稱 | 說明 |
---|---|---|
roles/vmmigration.admin | VM Migration 管理員 | 允許使用者建立新的 Migrate to Virtual Machines 來源,並執行所有其他遷移作業。 |
roles/vmmigration.viewer | VM Migration 檢視器 | 允許使用者在 Google Cloud 控制台中擷取 Migrate to Virtual Machines 相關資訊。適用於監控遷移作業但不會執行遷移作業的使用者。 |
舉例來說,如果您希望機構中的使用者能夠查看遷移作業相關資訊,但無法執行遷移作業,請指派 roles/vmmigration.viewer
角色給他們。
Google Cloud 主控台使用者帳戶
「遷移至虛擬機器」目標專案會定義執行已遷移 VM 的 Compute Engine 執行個體的目標專案。Migrate to Virtual Machines 主機專案可做為目標專案使用。如果您想將 VM 遷移至其他專案,請將這些專案新增為 目標專案,以便透過「遷移至虛擬機器」功能進行遷移。
如要讓使用者能夠新增目標專案,並在目標專案中設定 Compute Engine 執行個體的詳細資料,該使用者必須具備必要的 身分與存取權管理 (IAM) 角色和權限。
由於您是在 Google Cloud console中執行這些動作,因此需要這些權限的使用者帳戶,就是您用來登入Google Cloud 控制台的帳戶:
如要新增目標專案,以便將其遷移至虛擬機器,您用來登入 Google Cloud 控制台的使用者帳戶必須具備新增目標專案的權限中所述的權限。
如要設定目標專案中執行的 Compute Engine 執行個體的目標詳細資料,您用來登入Google Cloud 控制台的使用者帳戶必須具備存取目標專案資料的權限,例如網路、執行個體類型等。請參閱「設定目標執行個體的權限」。
視您為環境設定身分與存取權管理的方式而定,您可以設定單一使用者來執行這兩項操作,也可以設定兩個不同的使用者。
新增目標專案的權限
如要新增目標專案,您用來登入Google Cloud 控制台的使用者帳戶必須符合以下條件:
- 主機專案中的
vmmigration.admin
角色 目標專案中的
resourcemanager.projectIamAdmin
角色
如需設定這些權限的操作說明,請參閱「設定主專案預設服務帳戶的權限」。
設定 Compute Engine 執行個體目標詳細資料的權限
如要在目標專案上設定 Compute Engine 執行個體的目標詳細資料,您用來登入 Google Cloud 控制台的使用者帳戶必須具備下列權限:
目標專案中的
roles/compute.viewer
角色
如需設定這些權限的操作說明,請參閱「設定主專案預設服務帳戶的權限」。
Migrate to Virtual Machines 預設服務帳戶
啟用 Migrate to Virtual Machines API 時,Migrate to Virtual Machines 會在主機專案上建立預設服務帳戶,並指派 vmmigration.serviceAgent
角色。Migrate to Virtual Machines 會使用這個服務帳戶,在目標專案中建立 Compute Engine 執行個體,做為測試複製和切換作業的一部分。
視環境而定,您可能需要編輯預設服務帳戶的權限。
在目標專案中使用共用虛擬私有雲時的權限
如要將 Compute Engine 執行個體部署至可存取共用虛擬私有雲的目標專案,您必須將 compute.networkUser
角色新增至 Migrate to Virtual Machines 預設服務帳戶,讓該帳戶可存取共用虛擬私有雲主專案中的子網路。
如要瞭解如何設定這些權限,請參閱「設定共用虛擬私有雲的權限」。
目標專案服務帳戶
根據預設,當您將已遷移的 VM 部署至目標 Compute Engine 執行個體時,系統不會將服務帳戶指派給該執行個體。
如果 Compute Engine 執行個體需要存取 Google Cloud服務和 API,請在目標專案中建立服務帳戶,並授予存取這些服務和 API 的必要權限。接著,請將服務帳戶附加至 Compute Engine 執行個體,以便設定目標詳細資料。
不過,如要將目標服務帳戶連結至 Compute Engine 執行個體,Migrate to Virtual Machines 預設服務帳戶需要具備必要的權限,如「在目標專案服務帳戶上設定權限」一文所述。
將 AWS 設為來源的權限
本節將詳細說明權限 JSON 範本的欄位。如要進一步瞭解如何實作遷移權限,請參閱「建立 AWS IAM 政策」一節。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"ec2:DescribeVolumes",
"ec2:DescribeInstanceTypes",
"ec2:DescribeSnapshots",
"ec2:CreateTags",
"ec2:CreateSnapshots",
"ec2:StopInstances"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ebs:ListSnapshotBlocks",
"ebs:ListChangedBlocks",
"ebs:GetSnapshotBlock",
"ec2:DeleteSnapshot",
"ec2:DeleteTags"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/m2vm-resource": "snapshot"
}
}
}
]
}
如要顯示遷移候選項目的清單,請授予「Migrate to Virtual Machines」ec2:DescribeInstances、ec2:DescribeVolumes 和 ec2:DescribeInstanceTypes 權限。
如要從 AWS 將 EC2 磁碟區遷移至 Google Cloud,Migrate to Virtual Machines 需要下列權限:
- 如要建立磁碟區的快照,請授予 ec2:DescribeSnapshots、ec2:CreateSnapshots 和 ec2:CreateTags 權限。
- 如要複製資料,請 Google Cloud 授予 ebs:ListSnapshotBlocks、ebs:ListChangedBlocks 和 ebs:GetSnapshotBlock 權限。
- 如要刪除舊的快照,請授予 ec2:DeleteSnapshot 和 ec2:DeleteTags 的權限。
如要執行切換作業,請為 ec2:StopInstances 授予 Migrate to Virtual Machines 權限。
將 Azure 設為來源的權限
本節將說明權限 JSON 範本的欄位。如要進一步瞭解如何實作遷移權限,請參閱「建立自訂角色」一節。
如要建立與來源相關聯的資源群組、驗證來源是否存在、列出所含資源,以及在刪除來源時刪除資源群組,您必須具備下列權限:
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/delete"
您必須具備下列權限,才能取得商品目錄清單,並取得要遷移的 VM 詳細資料:
"Microsoft.Compute/virtualMachines/read"
在將 VM 切換至 Google Cloud VM 時,您必須具備下列權限才能釋放 VM:
"Microsoft.Compute/virtualMachines/deallocate/action"
如要建立、列出及刪除要遷移的 VM 快照/還原點,必須具備下列權限:
"Microsoft.Compute/restorePointCollections/read",
"Microsoft.Compute/restorePointCollections/write",
"Microsoft.Compute/restorePointCollections/delete",
"Microsoft.Compute/restorePointCollections/restorePoints/read",
"Microsoft.Compute/restorePointCollections/restorePoints/write",
"Microsoft.Compute/restorePointCollections/restorePoints/delete",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/snapshots/read"
如要讀取快照 / 還原點資料,必須具備下列權限:
"Microsoft.Compute/restorePointCollections/restorePoints/diskRestorePoints/read",
"Microsoft.Compute/restorePointCollections/restorePoints/diskRestorePoints/beginGetAccess/action",
"Microsoft.Compute/restorePointCollections/restorePoints/diskRestorePoints/endGetAccess/action",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/endGetAccess/action"
授予網路存取權
除了授予權限之外,您還必須確認磁碟的存取權並未遭到封鎖,或僅限於特定網路。磁碟必須可透過公用網路存取。
如要確保公用網路可存取磁碟,請按照下列步驟操作:
- 在 Azure 帳戶中前往磁碟設定。
- 在「設定」中開啟「網路」頁面。
- 選取「啟用來自所有網路的公開存取權」。
- 按一下 [儲存]。
詳情請參閱「管理受管理磁碟的網路存取權」。