暗号化された Azure VM をリージョン間で移動する

Azure Resource Mover は、Azure リージョン間で Azure リソースを移動するのに役立ちます。 この記事では、Azure Resource Mover を使用して、暗号化された Azure 仮想マシン (VM) を別の Azure リージョンに移動する方法について説明します。

暗号化された VM とは、次のどちらかを言います。

このチュートリアルでは、以下の内容を学習します。

  • 暗号化された Azure VM とその依存リソースを、別の Azure リージョンに移動します。

注意

各チュートリアルでは、シナリオを試すための最も簡単な方法を紹介し、可能であれば既定のオプションを使用します。

Azure へのサインイン

Azure サブスクリプションを持っていない場合は、始める前に無料アカウントを作成し、Azure portal にサインインしてください。

前提条件

開始する前に、以下を確認します。

要件 詳細
サブスクリプションのアクセス許可 移動するリソースを含むサブスクリプションの "所有者" アクセス権があることを確認します。

所有者アクセスが必要な理由: Azure サブスクリプションの特定のソースと宛先のペアに対してリソースを初めて追加すると、Resource Mover によって、システム割り当てマネージド ID (旧称: Managed Service ID (MSI)) が作成されます。 この ID は、サブスクリプションによって信頼されます。 この ID を作成して、必要なロール (ソース サブスクリプションの "共同作成者" と "ユーザー アクセス管理者") をそれに割り当てるためには、リソースを追加する際に使用するアカウントに、サブスクリプションの "所有者" アクセス許可が必要です。 詳細については、「Azure ロール、Microsoft Entra ロール、従来のサブスクリプション管理者ロール」を参照してください。
VM のサポート 次のようにして、移動する VM がサポート対象であることを確認します。
  • サポートされている Windows VM を確認します。
  • サポートされている Linux 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) のアクセス許可を追加するには、次の手順のようにします。

    1. [設定][アクセス ポリシーの追加] を選択します。

    2. [プリンシパルの選択] で MSI を検索します。 MSI の名前は movecollection-<sourceregion>-<target-region>-<metadata-region> です。

    3. MSI に関しては、次のアクセス許可を追加します。

      コンポーネント 必要なアクセス許可
      シークレット "取得" と "一覧"

      [シークレットのアクセス許可]>[シークレットの管理操作] を選んで、[取得][一覧] を選びます。
      キー

      KEK を使っている場合は、シークレットのアクセス許可に加えて、これらのアクセス許可が必要です。
      "取得" と "一覧"

      [キーのアクセス許可]>[キーの管理操作] を選んで、[取得][一覧] を選びます。

    宛先キー コンテナーにキーをコピーする

    提供されているスクリプトを使って、暗号化のシークレットとキーを移動元キー コンテナーから移動先キー コンテナーにコピーします。

    移動元キー コンテナーから移動先キー コンテナーにキーをコピーするには、次の手順のようにします。

    • PowerShell でスクリプトを実行します。 最新バージョンの PowerShell を使用することをお勧めします。
    • このスクリプトには、具体的に次のモジュールが必要となります。
      • Az.Compute
      • Az.KeyVault (バージョン 3.0.0)
      • Az.Accounts (バージョン 2.2.3)

    スクリプトを実行するには次のようにします。

    1. GitHub にあるスクリプトを開きます。

    2. スクリプトの内容をローカル ファイルにコピーし、Copy-keys.ps1 という名前を付けます。

    3. スクリプトを実行します。

    4. Azure portal にサインインします。

    5. [ユーザー入力] ウィンドウで、移動元サブスクリプション、リソース グループ、移動元 VM、移動先の場所、ディスクとキーの暗号化に使用する移動先コンテナーを選びます。

      スクリプトの値を入力するための [User Inputs]\(ユーザー入力\) ウィンドウのスクリーンショット。

    6. [選択] ボタンを使ってスクリプトを実行します。

      スクリプトの実行が完了すると、CopyKeys が成功したことを伝えるメッセージが表示されます。

    VM を準備する

    移動のために VM を準備するには、次の手順のようにします。

    1. VM が前提条件を満たしていることを確認したら、移動する VM をオンになっていることを確認します。 宛先リージョンで利用するすべての VM ディスクを VM にアタッチし、初期化する必要があります。
    2. 信頼された最新のルート証明書と、更新された証明書失効リスト (CRL) が VM にあることを確認するために、次のことを行います。
      • Windows VM で、最新の Windows 更新プログラムをインストールします。
      • Linux VM では、ディストリビューター ガイダンスに従って、マシンに最新の証明書と CRL が存在するようにします。
    3. VM からのアウトバウンド接続を許可するために、次のどちらかを実行します。
      • アウトバウンド接続を制御するために URL ベースのファイアウォール プロキシを使用する場合は、URL へのアクセスを許可します。
      • ネットワーク セキュリティ グループ (NSG) ルールを使用して送信接続を制御する場合は、これらのサービス タグ ルールを作成します。

    移動するリソースを選択する

    選択したソース リージョン内の任意のリソース グループから、サポートされている任意のリソースの種類を選択できます。 ソース リージョンと同じサブスクリプション内のターゲット リージョンにリソースを移動できます。 サブスクリプションを変更する場合は、リソースの移動後に変更を行うことができます。

    リソースを選択するには、次の手順を実行します。

    1. Azure portal で、Resource Mover を検索します。 [サービス][Azure Resource Mover] を選びます。

      Azure portal の Azure Resource Mover の検索結果のスクリーンショット。

    2. Azure Resource Mover の [概要] ペインで、 [Move across regions](リージョン間で移動する) を選択します。

      別のリージョンに移動するリソースを追加するための [Move across regions]\(リージョン間で移動する\) ボタンのスクリーンショット。

    3. [リソースの移動]>[Source + destination] (移動元と移動先) タブで、次のようにします。

      1. 移動元のサブスクリプションとリージョンを選びます。
      2. [宛先] で、VM の移動先のリージョンを選んで、[次へ] を選びます。

      ソースと宛先のリージョンを選択するページ。

    4. [移動するリソース] タブで、[リソースの選択] オプションを選んで、使用可能な VM の一覧を含む新しいタブを開きます。

      [リソースの移動] ペインと [リソースの選択] ボタンのスクリーンショット。

    5. [リソースの選択] タブで、移動する VM を選びます。 「移動するリソースを選択する」セクションで述べたように、追加できるのは、移動の対象としてサポートされるリソースのみです。

      移動する VM を選択するための [リソースの選択] ペインのスクリーンショット。

      注意

      このチュートリアルでは、カスタマー マネージド キーによるサーバー側暗号化を使用する VM (rayne-vm) と、ディスク暗号化が有効になった VM (rayne-vm-ade) を選択します。

    6. [Done] を選択します。

    7. [移動するリソース] タブを選んで、[次へ] を選びます。

    8. [レビュー] タブを選び、移動元と移動先の設定を確認します。

      ソースと宛先の設定を確認するためのペインのスクリーンショット。

    9. [続行] を選択して、リソースの追加を開始します。

    10. 進行状況を追跡するには、通知アイコンを選びます。 プロセスが正常に完了した後、 [通知] ペインの [Added resources for move](移動対象に追加されたリソース) を選択します。

      リソースが正常に追加されたことを確認するための [通知] ペインのスクリーンショット。

    11. 通知を選択した後、 [Across regions](リージョン間) ページでリソースを確認します。

    注意

    • 追加したリソースは "準備が保留中" の状態になります。
    • VM のリソース グループが自動的に追加されます。
    • 宛先リージョン内の既存のリソースを使用するように [Destination configuration](宛先の構成) エントリを変更する場合、そのリソースについては移動を開始する必要がないため、リソースの状態が "コミット保留中" に設定されます。
    • 追加済みのリソースを削除する場合、その方法は、移動プロセスのどの段階にあるかによって異なります。 詳細については、「移動コレクションとリソース グループを管理する」を参照してください。

    依存関係を解決する

    移動の前に依存関係を解決するには、次の手順のようにします。

    1. 依存関係を追加すると、バックグラウンドで検証されます。 [依存関係の検証] ボタンが表示された場合は、それを選んで手動検証をトリガーします。

      [依存関係の検証] ボタンを示すスクリーンショット。

      検証プロセスが開始されます。

    2. 依存関係が見つかった場合は、 [依存関係の追加] を選択します。

      [依存関係の追加] ボタンのスクリーンショット。

    3. [依存関係の追加] ペインでは、[すべての依存関係を表示] オプションを既定のままにします。

      • [Show all dependencies](すべての依存関係を表示する) を選択すると、リソースの直接の依存関係と間接の依存関係がすべて反復処理されます。 たとえば、VM について、NIC、仮想ネットワーク、ネットワーク セキュリティ グループ (NSG) などが表示されます。
      • [Show first level dependencies only](第 1 レベルの依存関係のみ表示する) を選択すると、直接の依存関係のみが表示されます。 たとえば、VM について、NIC は表示されますが、仮想ネットワークは表示されません。
    4. 追加する依存リソースを選んで、[依存関係の追加] を選びます。

      依存関係リストと [依存関係の追加] ボタンのスクリーンショット。

    5. 依存関係を追加すると、バックグラウンドで自動的に検証されます。 [依存関係の検証] オプションが表示された場合は、それを選んで手動検証をトリガーします。

      依存関係を再検証するためのペインのスクリーンショット。

    宛先のリソースを割り当てる

    暗号化に関連する移動先リソースは、手動で割り当てる必要があります。

    Azure Disk Encryption が有効になっている VM を移動する場合、宛先リージョン内のキー コンテナーが依存関係として表示されます。 CMK によるサーバー側暗号化が使用されている VM を移動する場合は、宛先リージョン内のディスク暗号化セットが依存関係として表示されます。

    このチュートリアルでは、Azure Disk Encryption が有効にされている VM と CMK が使用されている VM の移動について取り上げているため、宛先のキー コンテナーとディスク暗号化セットの両方が依存関係として表示されます。

    宛先のリソースを手動で割り当てるには、次の手順を実行します。

    1. ディスク暗号化セットのエントリで、 [Destination configuration](宛先の構成) 列の [Resource not assigned](リソースが割り当てられていません) を選択します。

    2. [構成設定] で、移動先のディスク暗号化セットを選んで、[変更内容を保存] を選びます。

    3. 変更しているリソースの依存関係を保存して検証するか、単に変更を保存し、変更したものすべてを一度に検証することができます。

      宛先リージョンの変更を保存するための [Destination configuration]\(宛先の構成\) ペインのスクリーンショット。

      宛先リソースを追加すると、ディスク暗号化セットの状態が "移動のコミットが保留中" に変わります。

    4. キー コンテナーのエントリで、 [Destination configuration](宛先の構成) 列の [Resource not assigned](リソースが割り当てられていません) を選択します。 [構成設定] で移動先のキー コンテナーを選んで、変更内容を保存します。

    この段階で、ディスク暗号化セットとキー コンテナーの状態が "移動のコミットが保留中" に変わります。

    他のリソースを準備するためのペインのスクリーンショット。

    暗号化リソースの移動プロセスをコミットして完了するには、次のようにします。

    1. [Across regions] (リージョン間) でリソース (ディスク暗号化セットまたはキー コンテナー) を選んで、[Commit move] (移動のコミット) を選びます。
    2. [リソースの移動] で、 [コミット] を選択します。

    注意

    移動をコミットすると、リソースの状態が "ソースの削除が保留中" に変わります。

    移動するリソースを準備する

    暗号化リソースとソース リソース グループを移動したら、"準備が保留中" の状態になっている他のリソースを移動するための準備を行うことができます。

    1. [Across regions](リージョン間) ペインで移動を再検証し、問題があれば解決します。

    2. 移動を始める前に移動先の設定を編集する場合は、リソースの [Destination configuration] (宛先の構成) 列にあるリンクを選んで、設定を編集します。 ターゲット VM の設定を編集する場合、ターゲット VM のサイズをソース VM のサイズより小さくすることはできません。

    3. "準備が保留中" 状態になっている移動対象のリソースについて、 [準備] を選択します。

    4. [リソースの準備] ペインで、 [準備] を選択します。

      • 準備中に、Azure Site Recovery モビリティ エージェントが、レプリケートする VM にインストールされます。
      • VM データは、ターゲット リージョンに定期的にレプリケートされます。 これはソース VM には影響しません。
      • Resource Mover によって、他のソース グループ用の ARM テンプレートが生成されます。

    注意

    リソースの準備が完了すると、その状態が "移動の開始が保留中" に変わります。

    移動を開始する

    リソースの準備が完了したら、移動を開始できます。

    1. [Across regions] (リージョン間) ペインで、"移動の開始が保留中" 状態のリソースを選んで、[移動の開始] を選びます。

    2. [リソースの移動] ペインで [移動の開始] を選択します。

    3. 通知バーで移動の進行状況を追跡します。

      • VM の場合、レプリカ VM はターゲット リージョンに作成されます。 ソース VM がシャットダウンされ、ダウンタイム (通常は数分) が発生します。
      • Resource Mover によって、準備された ARM テンプレートを使用して他のリソースが再作成されます。 通常、ダウンタイムは発生しません。
      • リソースを移動すると、その状態が "移動のコミットが保留中" に変わります。

    移動を破棄またはコミットする

    最初の移動後に、移動をコミットするか、破棄するかを決定できます。

    • 破棄: テストを行っていて、実際にはソース リソースを移動したくない場合は移動を破棄します。 移動を破棄すると、リソースが "移動の開始が保留中" の状態に戻ります。
    • コミット:コミットすると、ターゲット リージョンへの移動が完了します。 ソース リソースをコミットすると、その状態が "ソースの削除が保留中" になり、削除するかどうかを決定できます。

    移動を破棄する

    移動を破棄するには、次の手順を実行します。

    1. [Across regions] (リージョン間) ペインで、"移動のコミットが保留中" 状態のリソースを選んで、[Discard move] (移動の破棄) を選びます。
    2. [移動の破棄] ペインで、 [破棄] を選択します。
    3. 通知バーで移動の進行状況を追跡します。

    注意

    リソースを破棄すると、VM の状態が "移動の開始が保留中" に変わります。

    移動をコミットする

    移動プロセスを完了するために、次の手順に従って移動をコミットします。

    1. [Across regions] (リージョン間) ペインで、"移動のコミットが保留中" 状態のリソースを選んで、[Commit move] (移動のコミット) を選びます。

    2. [Commit resources](リソースのコミット) ペインで [コミット] を選択します。

      コミットして移動を完了するリソースの一覧のスクリーンショット。

    3. 通知バーでコミットの進行状況を追跡します。

    注意

    • 移動をコミットすると、VM のレプリケーションが停止します。 ソース VM はコミットの影響を受けません。
    • コミットプロセスは、ソース ネットワーク リソースには影響しません。
    • 移動をコミットすると、リソースの状態が "ソースの削除が保留中" に変わります。

    移動後に設定を構成する

    移動プロセスの後で、次の設定を構成できます。

    • モビリティ サービスは、VM から自動的にはアンインストールされません。 手動でアンインストールします。あるいは、サーバーをもう一度移動する予定であれば、そのままにしておきます。
    • 移動後、Azure ロールベースのアクセス制御 (RBAC) 規則を変更します。

    コミット後にソース リソースを削除する

    移動後に、必要に応じて、ソース リージョンのリソースを削除できます。

    1. [Across regions] (リージョン間) ペインで、削除する各移動元リソースを選んで、[ソースの削除] を選びます。
    2. [ソースの削除] で、削除しようとしているリソースを確認し、 [削除の確認] で「yes」と入力します。

      注意

      この操作は元に戻せません。十分に確認してください。

    3. yes」と入力したら、 [ソースの削除] を選択します。

    注意

    Resource Move ポータルで、リソース グループ、キー コンテナー、SQL Server インスタンスを削除することはできません。 各リソースのプロパティ ページから個別に削除する必要があります。

    移動用に作成されたリソースを削除する

    このプロセス中に作成した Site Recovery リソースと移動コレクションは、移動後に手動で削除できます。

    • 既定では、移動コレクションは非表示になっています。 これを表示するには、非表示のリソースを有効にする必要があります。
    • キャッシュ ストレージには、事前に削除しておく必要があるロックがあります。

    リソースを削除するには、次の手順を実行します。

    1. リソース グループ RegionMoveRG-<sourceregion>-<target-region> でリソースを見つけます。

    2. ソース リージョン内のすべての VM とその他のソース リソースが移動または削除されていることを確認します。 この手順により、それらを使用している保留中のリソースがないことが保証されます。

    3. リソースを削除します。

      • 移動コレクションの名前: movecollection-<sourceregion>-<target-region>
      • キャッシュ ストレージ アカウントの名前: resmovecache<guid>
      • コンテナー名: ResourceMove-<sourceregion>-<target-region>-GUID

    次のステップ

    Azure SQL データベースとエラスティック プールの別のリージョンへの移動に関する詳細を確認します。