📀
異なる Entra テナント間で Azure VM をコピーする
異なる Entra テナント間で Azure VM をコピーする
Azure VM のコピーについて、同 Azure サブスクリプション内や、同 Entra テナントでの異なる Azure サブスクリプション間でのコピーは簡単にできるが、異なる Entra テナント間での Azure VM のコピーは一工夫が必要である。この記事では、異なる Entra テナント間で Azure VM をコピーする方法をメモとして残す。
前提
- azcopy を実行できること
azcopy の使い方: https://learn.microsoft.com/ja-jp/azure/storage/common/storage-use-azcopy-v10 - それぞれの Azure テナント/サブスクリプションで適切な権限を持っていること。
手順概要
- コピーしたい VM のスナップショットを作成する
- 作成されたスナップショットで SAS URL を生成する
- 宛先の Entra テナントに ストレージアカウント(Azure Blob Storage) と Blob コンテナー を作成する
- AzCopy を使って宛先テナントにスナップショットをコピーする
- コピーしたスナップショットのVHDファイルからマネージドディスクを作成する
- マネージドディスクから VM を作成する
手順詳細
-
コピーしたい VM のスナップショットを作成する
-
Azure Portal からコピーしたい VM の Disk のスナップショットを作成する。
[対象の仮想マシン] > [ディスク] > [OSディスク] > [スナップショットの作成] - スナップショットの種類 は、 フル を選択すること。
- (参考)スナップショットの作成方法: https://learn.microsoft.com/ja-jp/azure/virtual-machines/snapshot-copy-managed-disk?tabs=portal
-
Azure Portal からコピーしたい VM の Disk のスナップショットを作成する。
-
作成されたスナップショットで SAS URL を生成する
- 作成されたスナップショットに移動し、 [スナップショットのエクスポート] をクリックする。
SAS URL のセキュリティを高めるためには、 [データ アクセス認証モードを有効にする] にチェックを入れる。- [URL の期限が切れるまでの秒数] について、7,200 秒など必要十分な時間を設定し、 [URL の生成] をクリックする。
- 生成された SAS URL をコピーし、安全にメモに残す。 = ★ Source SAS URL
-
宛先の Entra テナントに ストレージアカウント(Azure Blob Storage) と Blob コンテナー を作成する
- 宛先の Azure サブスクリプションに移動し、 ストレージアカウント を作成する。
- 作成したストレージアカウントに移動し、 [コンテナー] を vm-snapshot など任意の名前で新しく作成する。
- 作成したコンテナーに移動し、 [共有アクセス トークン] から SAS URL を生成する。
- [アクセス許可] は、 書き込み のみを選択する。
- [開始日時と有効期限の日時] は、必要十分な時間を設定する。
- [使用できる IP アドレス] で、適切にアクセス元の IP アドレスを制限することが望ましい。
- 生成された BLOB SAS URL をコピーし、安全にメモに残す。
-
(重要) BLOB SAS URL 内の "?" の前に、
/{vhdファイル名}.vhd
を追加する。 = ★ Destination SAS URL
(例)https://xxxx.blob.core.windows.net/vm-snapshot/copy-vm-name.vhd?sp={略}
※ ファイルの拡張子を.vhd
に指定することで、後の工程で、コピーしたファイルから VM を作成できるようになる。
-
AzCopy を使って宛先テナントにスナップショットをコピーする
- azcopy を使って、 Source SAS URL から Destination SAS URL にスナップショットをコピーする。
- 以下のコマンドを実行する。
azcopy copy "{Source SAS URL}" "{Destination SAS URL}"
- 参考までに、1 TiB のディスクのコピーに約 30 分かかりました。
-
コピーしたスナップショットのVHDファイルからマネージドディスクを作成する
- Azure Portal から、[リソースの作成] で Managed Disks を作成する。
- [ソースの種類] で ストレージ BLOB を選択し、 [ソース BLOB] に、先ほどコピーした VHD ファイルを指定する。
- その他の設定を適切に行い、マネージドディスクを作成する。
-
マネージドディスクから VM を作成する
- 作成されたマネージドディスクに遷移し、[VM の作成] から新しい VM を作成する。
以上
今後の改善点
- SAS URL からの情報漏洩リスクを低減するには、コピー元の SAS URL 生成時に、[データ アクセス認証モードを有効にする] ことで Microsoft Entra による認証機能を ON にすることが望ましい。しかし、データ アクセス認証モードを有効にした場合、私が試した限りでは
azcopy copy
がうまくいかなかった。
参考: https://learn.microsoft.com/ja-jp/azure/virtual-machines/linux/download-vhd?wt.mc_id=azmanageddisks_inproduct_diskexport_learnmoreexport_csasci&tabs=azure-portal#secure-downloads-and-uploads-with-microsoft-entra-id
Discussion