このドキュメントでは、Migrate to Virtual Machines に必要なさまざまなロールと権限について説明します。Google Cloud では通常、ロールと権限がサービス アカウントまたはユーザー アカウントに関連付けられます。
以下のセクションでは、これらのロールと権限を Migrate to Virtual Machines の主なコンポーネント別に説明します。
また、Cloud Identity and Access Management(IAM)には、組織内でユーザーのアクセス権の管理に使用できる事前定義ロールが 2 つあります。
ロール | タイトル | 説明 |
---|---|---|
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 コンソール ユーザー アカウント
Migrate to Virtual Machines のターゲット プロジェクトは、移行した VM を実行している Compute Engine インスタンスの宛先プロジェクトを定義します。Migrate to Virtual Machines のホスト プロジェクトは、ターゲット プロジェクトとして使用できます。VM を他のプロジェクトに移行する場合は、これらの VM をターゲット プロジェクトとして 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 の構成方法に応じて、1 人のユーザーが両方の操作を実行できるようにするか、2 人のユーザーを別々に構成します。
ターゲット プロジェクトを追加する権限
ターゲット プロジェクトを追加するには、Google Cloud コンソールへのログインに使用するユーザー アカウントに次のものが必要です。
- ホスト プロジェクトでのロール
vmmigration.admin
ターゲット プロジェクトでのロール
resourcemanager.projectIamAdmin
これらの権限の設定手順については、ホスト プロジェクトのデフォルト サービス アカウントに権限を構成するをご覧ください。
Compute Engine インスタンスのターゲットの詳細を構成する権限
ターゲット プロジェクトで Compute Engine インスタンスのターゲットの詳細を構成するには、Google Cloud コンソールへのログインに使用するユーザー アカウントに次のものが必要です。
ターゲット プロジェクトでのロール
roles/compute.viewer
これらの権限の設定手順については、ホスト プロジェクトのデフォルト サービス アカウントに権限を構成するをご覧ください。
Migrate to Virtual Machines のデフォルトのサービス アカウント
Migrate to Virtual Machines API を有効にすると、ホスト プロジェクトにデフォルトのサービス アカウントが作成され、ロール vmmigration.serviceAgent
が割り当てられます。Migrate to Virtual Machines は、このサービス アカウントを使用して、テストクローンの一部としてターゲット プロジェクトに Compute Engine インスタンスを作成し、カットオーバーします。
環境によっては、デフォルト サービス アカウントの権限を編集する必要が生じることもあります。
ターゲット プロジェクトで共有 VPC を使用する場合の権限
共有 VPC にアクセスするターゲット プロジェクトに Compute Engine インスタンスをデプロイするには、Migrate to Virtual Machines のデフォルト サービス アカウントに compute.networkUser
ロールを追加して、共有 VPC ホスト プロジェクト内のサブネットワークへのアクセスを許可する必要があります。
これらの権限の設定手順については、共有 VPC の権限の構成をご覧ください。
ターゲット プロジェクトのサービス アカウント
デフォルトでは、移行した 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 の権限を付与します。
Migrate to Virtual Machines で EC2 ボリュームを AWS から Google Cloud に移行するには、次の権限が必要です。
- ボリュームのスナップショットを作成できるように、ec2:DescribeSnapshots、ec2:CreateSnapshots、ec2:CreateTags の権限を付与します。
- データを Google Cloud にコピーできるように、ebs:ListSnapshotBlocks、ebs:ListChangedBlocks、ebs:GetSnapshotBlock の権限を付与します。
- 古いスナップショットを削除できるように、ec2:DeleteSnapshot と ec2:DeleteTags の権限を付与します。
カットオーバーができるように、Migrate to Virtual Machines に ec2:StopInstances の権限を付与します。
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 にカットオーバーするときに割り当てを解除するには、次の権限が必要です。
"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"