暗号化された Azure VM をリージョン間で移動する
Azure Resource Mover は、Azure リージョン間で Azure リソースを移動するのに役立ちます。 この記事では、Azure Resource Mover を使用して、暗号化された Azure 仮想マシン (VM) を別の Azure リージョンに移動する方法について説明します。
暗号化された VM とは、次のどちらかを言います。
- Azure Disk Encryption が有効になっているディスクが使用されている VM。 詳細については、Azure portal を使用した Windows 仮想マシンの作成と暗号化に関するページを参照してください。
- カスタマー マネージド キー (CMK) を使用して保存時の暗号化 (サーバー側暗号化) が適用されている VM。 詳細については、「Azure portal を使用して、マネージド ディスクでカスタマー マネージド キーを使用し、サーバー側の暗号化を有効にする」を参照してください。
このチュートリアルでは、以下の内容を学習します。
- 暗号化された Azure VM とその依存リソースを、別の Azure リージョンに移動します。
注意
各チュートリアルでは、シナリオを試すための最も簡単な方法を紹介し、可能であれば既定のオプションを使用します。
Azure へのサインイン
Azure サブスクリプションを持っていない場合は、始める前に無料アカウントを作成し、Azure portal にサインインしてください。
前提条件
開始する前に、以下を確認します。
要件 | 詳細 |
---|---|
サブスクリプションのアクセス許可 | 移動するリソースを含むサブスクリプションの "所有者" アクセス権があることを確認します。 所有者アクセスが必要な理由: Azure サブスクリプションの特定のソースと宛先のペアに対してリソースを初めて追加すると、Resource Mover によって、システム割り当てマネージド ID (旧称: Managed Service ID (MSI)) が作成されます。 この ID は、サブスクリプションによって信頼されます。 この ID を作成して、必要なロール (ソース サブスクリプションの "共同作成者" と "ユーザー アクセス管理者") をそれに割り当てるためには、リソースを追加する際に使用するアカウントに、サブスクリプションの "所有者" アクセス許可が必要です。 詳細については、「Azure ロール、Microsoft Entra ロール、従来のサブスクリプション管理者ロール」を参照してください。 |
VM のサポート | 次のようにして、移動する VM がサポート対象であることを確認します。 |
キー コンテナーの要件 (Azure Disk Encryption) | VM の Azure Disk Encryption を有効にしている場合、移動元と移動先の両方のリージョンにキー コンテナーが必要です。 詳細については、キー コンテナーの作成に関するページを参照してください。 移動元と移動先のリージョンのキー コンテナーで、次のアクセス許可が必要です。 |
ディスク暗号化セット (CMK によるサーバー側暗号化) | CMK によるサーバー側暗号化が使用されている VM を使っている場合、移動元と移動先の両方のリージョンでディスク暗号化セットが必要です。 詳細については、ディスク暗号化セットの作成に関するページを参照してください。 カスタマー マネージド キーにハードウェア セキュリティ モジュール (HSM キー) を使用している場合、リージョン間の移動はサポートされません。 |
ターゲット リージョンのクォータ | サブスクリプションには、ターゲット リージョンで移動するリソースを作成するのに十分なクォータが必要です。 クォータがない場合は、追加の制限を要求します。 |
ターゲット リージョンの料金 | VM の移動先となるターゲット リージョンに関連付けられている価格と料金を確認します。 料金計算ツールを使用してください。 |
キー コンテナーにおけるアクセス許可を確認する
Azure Disk Encryption が有効になっている VM を移動する場合は、スクリプトを実行する必要があります。 スクリプトを実行するユーザーには、そのための適切なアクセス許可が必要です。 必要なアクセス許可については、後で示す表をご覧ください。 Azure portal で目的のキー コンテナーに移動すると、アクセス許可を変更するためのオプションが見つかります。 [設定] の [アクセス ポリシー] を選択します。
ユーザーのアクセス許可がない場合は、[アクセス ポリシーの追加] を選んでアクセス許可を指定します。 ユーザー アカウントに既にポリシーがある場合は、 [ユーザー] で、後述の表の手順に従ってアクセス許可を設定します。
Azure Disk Encryption を使用する Azure VM には、次のようなバリエーションが考えられ、関連するコンポーネントに従ってアクセス許可を設定する必要があります。 想定される VM は次のとおりです。
- 既定のオプション (ディスクはシークレットのみを使用して暗号化される)。
- キー暗号化キー (KEK) を使用してセキュリティが強化されている。
ソース リージョンのキー コンテナー
スクリプトを実行するユーザーに対して、次のコンポーネントのアクセス許可を設定します。
コンポーネント | 必要なアクセス許可 |
---|---|
シークレット | Get [シークレットのアクセス許可]>[シークレットの管理操作] を選んで、[取得] を選びます。 |
キー KEK を使っている場合は、シークレットのアクセス許可に加えて、これらのアクセス許可が必要です。 |
"取得" と "暗号化解除" [キーのアクセス許可]>[キーの管理操作] を選んで、[取得] を選びます。 [暗号化操作] で、 [暗号化解除] を選択します。 |
宛先リージョンのキー コンテナー
[アクセス ポリシー] タブで、[Azure Disk Encryption (ボリューム暗号化用)] が有効になっていることを確認します。
スクリプトを実行するユーザーに対して、次のコンポーネントのアクセス許可を設定します。
コンポーネント | 必要なアクセス許可 |
---|---|
シークレット | Set [シークレットのアクセス許可]>[シークレットの管理操作] を選んで、[設定] を選びます。 |
キー KEK を使っている場合は、シークレットのアクセス許可に加えて、これらのアクセス許可が必要です。 |
"取得"、"作成"、"暗号化" [キーのアクセス許可]>[キーの管理操作] を選んで、[取得] と [作成] を選びます。 [暗号化操作] で [暗号化] を選択します。 |
前のアクセス許可に加え、移動先のキー コンテナーで、Resource Mover がユーザーの代わりに Azure リソースにアクセスするために使うマネージド システム ID のアクセス許可を追加する必要があります。
マネージド システム ID にアクセス許可を追加する
マネージド システム ID (MSI) のアクセス許可を追加するには、次の手順のようにします。
[設定] の [アクセス ポリシーの追加] を選択します。
[プリンシパルの選択] で MSI を検索します。 MSI の名前は
movecollection-<sourceregion>-<target-region>-<metadata-region>
です。MSI に関しては、次のアクセス許可を追加します。
コンポーネント 必要なアクセス許可 シークレット "取得" と "一覧"
[シークレットのアクセス許可]>[シークレットの管理操作] を選んで、[取得] と [一覧] を選びます。キー
KEK を使っている場合は、シークレットのアクセス許可に加えて、これらのアクセス許可が必要です。"取得" と "一覧"
[キーのアクセス許可]>[キーの管理操作] を選んで、[取得] と [一覧] を選びます。
宛先キー コンテナーにキーをコピーする
提供されているスクリプトを使って、暗号化のシークレットとキーを移動元キー コンテナーから移動先キー コンテナーにコピーします。
移動元キー コンテナーから移動先キー コンテナーにキーをコピーするには、次の手順のようにします。
- PowerShell でスクリプトを実行します。 最新バージョンの PowerShell を使用することをお勧めします。
- このスクリプトには、具体的に次のモジュールが必要となります。
- Az.Compute
- Az.KeyVault (バージョン 3.0.0)
- Az.Accounts (バージョン 2.2.3)
スクリプトを実行するには次のようにします。
GitHub にあるスクリプトを開きます。
スクリプトの内容をローカル ファイルにコピーし、Copy-keys.ps1 という名前を付けます。
スクリプトを実行します。
Azure portal にサインインします。
[ユーザー入力] ウィンドウで、移動元サブスクリプション、リソース グループ、移動元 VM、移動先の場所、ディスクとキーの暗号化に使用する移動先コンテナーを選びます。
[選択] ボタンを使ってスクリプトを実行します。
スクリプトの実行が完了すると、CopyKeys が成功したことを伝えるメッセージが表示されます。
VM を準備する
移動のために VM を準備するには、次の手順のようにします。
- VM が前提条件を満たしていることを確認したら、移動する VM をオンになっていることを確認します。 宛先リージョンで利用するすべての VM ディスクを VM にアタッチし、初期化する必要があります。
- 信頼された最新のルート証明書と、更新された証明書失効リスト (CRL) が VM にあることを確認するために、次のことを行います。
- Windows VM で、最新の Windows 更新プログラムをインストールします。
- Linux VM では、ディストリビューター ガイダンスに従って、マシンに最新の証明書と CRL が存在するようにします。
- VM からのアウトバウンド接続を許可するために、次のどちらかを実行します。
- アウトバウンド接続を制御するために URL ベースのファイアウォール プロキシを使用する場合は、URL へのアクセスを許可します。
- ネットワーク セキュリティ グループ (NSG) ルールを使用して送信接続を制御する場合は、これらのサービス タグ ルールを作成します。
移動するリソースを選択する
選択したソース リージョン内の任意のリソース グループから、サポートされている任意のリソースの種類を選択できます。 ソース リージョンと同じサブスクリプション内のターゲット リージョンにリソースを移動できます。 サブスクリプションを変更する場合は、リソースの移動後に変更を行うことができます。
リソースを選択するには、次の手順を実行します。
Azure portal で、Resource Mover を検索します。 [サービス] で [Azure Resource Mover] を選びます。
Azure Resource Mover の [概要] ペインで、 [Move across regions](リージョン間で移動する) を選択します。
[リソースの移動]>[Source + destination] (移動元と移動先) タブで、次のようにします。
- 移動元のサブスクリプションとリージョンを選びます。
- [宛先] で、VM の移動先のリージョンを選んで、[次へ] を選びます。
[移動するリソース] タブで、[リソースの選択] オプションを選んで、使用可能な VM の一覧を含む新しいタブを開きます。
[リソースの選択] タブで、移動する VM を選びます。 「移動するリソースを選択する」セクションで述べたように、追加できるのは、移動の対象としてサポートされるリソースのみです。
注意
このチュートリアルでは、カスタマー マネージド キーによるサーバー側暗号化を使用する VM (rayne-vm) と、ディスク暗号化が有効になった VM (rayne-vm-ade) を選択します。
[Done] を選択します。
[移動するリソース] タブを選んで、[次へ] を選びます。
[レビュー] タブを選び、移動元と移動先の設定を確認します。
[続行] を選択して、リソースの追加を開始します。
進行状況を追跡するには、通知アイコンを選びます。 プロセスが正常に完了した後、 [通知] ペインの [Added resources for move](移動対象に追加されたリソース) を選択します。
通知を選択した後、 [Across regions](リージョン間) ページでリソースを確認します。
注意
- 追加したリソースは "準備が保留中" の状態になります。
- VM のリソース グループが自動的に追加されます。
- 宛先リージョン内の既存のリソースを使用するように [Destination configuration](宛先の構成) エントリを変更する場合、そのリソースについては移動を開始する必要がないため、リソースの状態が "コミット保留中" に設定されます。
- 追加済みのリソースを削除する場合、その方法は、移動プロセスのどの段階にあるかによって異なります。 詳細については、「移動コレクションとリソース グループを管理する」を参照してください。
依存関係を解決する
移動の前に依存関係を解決するには、次の手順のようにします。
依存関係を追加すると、バックグラウンドで検証されます。 [依存関係の検証] ボタンが表示された場合は、それを選んで手動検証をトリガーします。
検証プロセスが開始されます。
依存関係が見つかった場合は、 [依存関係の追加] を選択します。
[依存関係の追加] ペインでは、[すべての依存関係を表示] オプションを既定のままにします。
- [Show all dependencies](すべての依存関係を表示する) を選択すると、リソースの直接の依存関係と間接の依存関係がすべて反復処理されます。 たとえば、VM について、NIC、仮想ネットワーク、ネットワーク セキュリティ グループ (NSG) などが表示されます。
- [Show first level dependencies only](第 1 レベルの依存関係のみ表示する) を選択すると、直接の依存関係のみが表示されます。 たとえば、VM について、NIC は表示されますが、仮想ネットワークは表示されません。
追加する依存リソースを選んで、[依存関係の追加] を選びます。
依存関係を追加すると、バックグラウンドで自動的に検証されます。 [依存関係の検証] オプションが表示された場合は、それを選んで手動検証をトリガーします。
宛先のリソースを割り当てる
暗号化に関連する移動先リソースは、手動で割り当てる必要があります。
Azure Disk Encryption が有効になっている VM を移動する場合、宛先リージョン内のキー コンテナーが依存関係として表示されます。 CMK によるサーバー側暗号化が使用されている VM を移動する場合は、宛先リージョン内のディスク暗号化セットが依存関係として表示されます。
このチュートリアルでは、Azure Disk Encryption が有効にされている VM と CMK が使用されている VM の移動について取り上げているため、宛先のキー コンテナーとディスク暗号化セットの両方が依存関係として表示されます。
宛先のリソースを手動で割り当てるには、次の手順を実行します。
ディスク暗号化セットのエントリで、 [Destination configuration](宛先の構成) 列の [Resource not assigned](リソースが割り当てられていません) を選択します。
[構成設定] で、移動先のディスク暗号化セットを選んで、[変更内容を保存] を選びます。
変更しているリソースの依存関係を保存して検証するか、単に変更を保存し、変更したものすべてを一度に検証することができます。
宛先リソースを追加すると、ディスク暗号化セットの状態が "移動のコミットが保留中" に変わります。
キー コンテナーのエントリで、 [Destination configuration](宛先の構成) 列の [Resource not assigned](リソースが割り当てられていません) を選択します。 [構成設定] で移動先のキー コンテナーを選んで、変更内容を保存します。
この段階で、ディスク暗号化セットとキー コンテナーの状態が "移動のコミットが保留中" に変わります。
暗号化リソースの移動プロセスをコミットして完了するには、次のようにします。
- [Across regions] (リージョン間) でリソース (ディスク暗号化セットまたはキー コンテナー) を選んで、[Commit move] (移動のコミット) を選びます。
- [リソースの移動] で、 [コミット] を選択します。
注意
移動をコミットすると、リソースの状態が "ソースの削除が保留中" に変わります。
移動するリソースを準備する
暗号化リソースとソース リソース グループを移動したら、"準備が保留中" の状態になっている他のリソースを移動するための準備を行うことができます。
[Across regions](リージョン間) ペインで移動を再検証し、問題があれば解決します。
移動を始める前に移動先の設定を編集する場合は、リソースの [Destination configuration] (宛先の構成) 列にあるリンクを選んで、設定を編集します。 ターゲット VM の設定を編集する場合、ターゲット VM のサイズをソース VM のサイズより小さくすることはできません。
"準備が保留中" 状態になっている移動対象のリソースについて、 [準備] を選択します。
[リソースの準備] ペインで、 [準備] を選択します。
- 準備中に、Azure Site Recovery モビリティ エージェントが、レプリケートする VM にインストールされます。
- VM データは、ターゲット リージョンに定期的にレプリケートされます。 これはソース VM には影響しません。
- Resource Mover によって、他のソース グループ用の ARM テンプレートが生成されます。
移動を開始する
リソースの準備が完了したら、移動を開始できます。
[Across regions] (リージョン間) ペインで、"移動の開始が保留中" 状態のリソースを選んで、[移動の開始] を選びます。
[リソースの移動] ペインで [移動の開始] を選択します。
通知バーで移動の進行状況を追跡します。
- VM の場合、レプリカ VM はターゲット リージョンに作成されます。 ソース VM がシャットダウンされ、ダウンタイム (通常は数分) が発生します。
- Resource Mover によって、準備された ARM テンプレートを使用して他のリソースが再作成されます。 通常、ダウンタイムは発生しません。
- リソースを移動すると、その状態が "移動のコミットが保留中" に変わります。
移動を破棄またはコミットする
最初の移動後に、移動をコミットするか、破棄するかを決定できます。
- 破棄: テストを行っていて、実際にはソース リソースを移動したくない場合は移動を破棄します。 移動を破棄すると、リソースが "移動の開始が保留中" の状態に戻ります。
- コミット:コミットすると、ターゲット リージョンへの移動が完了します。 ソース リソースをコミットすると、その状態が "ソースの削除が保留中" になり、削除するかどうかを決定できます。
移動を破棄する
移動を破棄するには、次の手順を実行します。
- [Across regions] (リージョン間) ペインで、"移動のコミットが保留中" 状態のリソースを選んで、[Discard move] (移動の破棄) を選びます。
- [移動の破棄] ペインで、 [破棄] を選択します。
- 通知バーで移動の進行状況を追跡します。
注意
リソースを破棄すると、VM の状態が "移動の開始が保留中" に変わります。
移動をコミットする
移動プロセスを完了するために、次の手順に従って移動をコミットします。
[Across regions] (リージョン間) ペインで、"移動のコミットが保留中" 状態のリソースを選んで、[Commit move] (移動のコミット) を選びます。
[Commit resources](リソースのコミット) ペインで [コミット] を選択します。
通知バーでコミットの進行状況を追跡します。
注意
- 移動をコミットすると、VM のレプリケーションが停止します。 ソース VM はコミットの影響を受けません。
- コミットプロセスは、ソース ネットワーク リソースには影響しません。
- 移動をコミットすると、リソースの状態が "ソースの削除が保留中" に変わります。
移動後に設定を構成する
移動プロセスの後で、次の設定を構成できます。
- モビリティ サービスは、VM から自動的にはアンインストールされません。 手動でアンインストールします。あるいは、サーバーをもう一度移動する予定であれば、そのままにしておきます。
- 移動後、Azure ロールベースのアクセス制御 (RBAC) 規則を変更します。
コミット後にソース リソースを削除する
移動後に、必要に応じて、ソース リージョンのリソースを削除できます。
- [Across regions] (リージョン間) ペインで、削除する各移動元リソースを選んで、[ソースの削除] を選びます。
- [ソースの削除] で、削除しようとしているリソースを確認し、 [削除の確認] で「yes」と入力します。
注意
この操作は元に戻せません。十分に確認してください。
- 「yes」と入力したら、 [ソースの削除] を選択します。
注意
Resource Move ポータルで、リソース グループ、キー コンテナー、SQL Server インスタンスを削除することはできません。 各リソースのプロパティ ページから個別に削除する必要があります。
移動用に作成されたリソースを削除する
このプロセス中に作成した Site Recovery リソースと移動コレクションは、移動後に手動で削除できます。
- 既定では、移動コレクションは非表示になっています。 これを表示するには、非表示のリソースを有効にする必要があります。
- キャッシュ ストレージには、事前に削除しておく必要があるロックがあります。
リソースを削除するには、次の手順を実行します。
リソース グループ
RegionMoveRG-<sourceregion>-<target-region>
でリソースを見つけます。ソース リージョン内のすべての VM とその他のソース リソースが移動または削除されていることを確認します。 この手順により、それらを使用している保留中のリソースがないことが保証されます。
リソースを削除します。
- 移動コレクションの名前:
movecollection-<sourceregion>-<target-region>
- キャッシュ ストレージ アカウントの名前:
resmovecache<guid>
- コンテナー名:
ResourceMove-<sourceregion>-<target-region>-GUID
- 移動コレクションの名前:
次のステップ
Azure SQL データベースとエラスティック プールの別のリージョンへの移動に関する詳細を確認します。