角色和权限参考

本文档包含有关 Migrate to Virtual Machines 所需的不同角色和权限的参考信息。在 Google Cloud 中,角色和权限通常与服务账号用户账号相关联。

以下部分介绍了按 Migrate to Virtual Machines 的主要组件组织的相应角色和权限:

另外,Cloud Identity and Access Management (IAM) 包括两个预定义角色,您可以使用这些预定义角色来控制组织内用户的访问权限。

角色 名称 说明
roles/vmmigration.admin VM Migration Administrator 允许用户创建新的 Migrate to Virtual Machine 来源并执行所有其他迁移操作。
roles/vmmigration.viewer VM Migration Viewer 允许用户在 Google Cloud 控制台中检索有关 Migrate to Virtual Machines 的信息。适用于监控迁移但不执行迁移的用户。

例如,如果您希望组织中的用户能够查看迁移相关信息但无法执行迁移,请为用户分配 roles/vmmigration.viewer 角色。

Google Cloud 控制台用户账号

Migrate to Virtual Machines 目标项目定义运行已迁移虚拟机的 Compute Engine 实例的目标项目。Migrate to Virtual Machines 宿主项目可用作目标项目。如果您想要将虚拟机迁移到其他项目,则必须将其作为目标项目添加到 Migrate to Virtual Machines。

为了让用户能够添加目标项目并在目标项目上配置 Compute Engine 实例的详细信息,该用户需要必要的 Identity and Access Management (IAM) 角色和权限。

由于您是在 Google Cloud 控制台中执行这些操作,因此需要这些权限的用户账号是您用于登录 Google Cloud 控制台的账号:

  • 如需将目标项目添加到 Migrate to Virtual Machines,您用于登录 Google Cloud 控制台的用户账号需要具备添加目标项目的权限中所述的权限。

  • 如需配置目标项目上运行的 Compute Engine 实例的目标详情,您用于登录 Google Cloud 控制台的用户账号需要访问目标项目中的数据(例如网络、实例类型等)的权限。请参阅配置目标实例的权限

根据您为环境配置 IAM 的方式,您可以配置单个用户来执行两项操作,也可以配置两个单独的用户。

添加目标项目的权限

如需添加目标项目,您用于登录 Google Cloud 控制台的用户账号需要:

  • 宿主项目的 vmmigration.admin 角色
  • 目标项目的 resourcemanager.projectIamAdmin 角色

如需了解如何设置这些权限,请参阅配置宿主项目默认服务账号的权限

为 Compute Engine 实例配置目标详情的权限

如需在目标项目上配置 Compute Engine 实例的目标详细信息,您用于登录 Google Cloud 控制台的用户账号需要:

  • 目标项目的 roles/compute.viewer 角色

如需了解如何设置这些权限,请参阅配置宿主项目默认服务账号的权限

Migrate to Virtual Machines 默认服务账号

在启用 Migrate to Virtual Machine API 并为其分配 vmmigration.serviceAgent 角色后,Migrate to Virtual Machines 会在宿主项目上创建默认服务账号。在测试克隆和割接过程中,Migrate to Virtual Machines 会使用此服务账号在目标项目上创建 Compute Engine 实例。

根据您的环境,您可能必须修改默认服务账号的权限。

在目标项目上使用共享 VPC 时的权限

如需将 Compute Engine 实例部署到访问共享 VPC 的目标项目,您必须将 compute.networkUser 角色添加到 Migrate to Virtual Machines 默认服务账号,使其能够访问共享 VPC 宿主项目中的子网。

如需了解如何设置这些权限,请参阅为共享 VPC 配置权限

目标项目服务账号

默认情况下,当您将迁移的虚拟机部署到目标 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:DescribeVolumesec2:DescribeInstanceTypes 的权限:

Migrate to Virtual Machines 需要以下权限才能将 EC2 卷从 AWS 迁移到 Google Cloud:

  1. 如需创建卷的快照,请授予 ec2:DescribeSnapshots、ec2:CreateSnapshotsec2:CreateTags 权限。
  2. 要将数据复制到 Google Cloud,请授予 ebs:ListSnapshotBlocks、ebs:ListChangedBlocksebs:GetSnapshotBlock 的权限。
  3. 要删除旧快照,请授予 ec2:DeleteSnapshotec2:DeleteTags 的权限。

如需执行割接,请授予 Migrate to Virtual Machines 对 ec2:StopInstances 的权限。

将 Azure 配置为来源的权限

本部分介绍了权限 JSON 模板的字段。如需详细了解如何实现迁移权限,请查看创建自定义角色部分。

如需创建与来源关联的资源组、验证其是否存在、列出其中包含的资源以及在删除来源时删除资源组,您需要拥有以下权限:

"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/delete"

如需获取清单列表并了解要迁移的虚拟机的详细信息,您需要拥有以下权限:

"Microsoft.Compute/virtualMachines/read"

如需在虚拟机割接到 Google Cloud 虚拟机时释放该虚拟机,您需要拥有以下权限:

"Microsoft.Compute/virtualMachines/deallocate/action"

创建、列出和删除要迁移的虚拟机的快照/恢复点需要以下权限:

"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"