Azureのディスクを別テナントにコピーする


企業によっては複数のAzure ADテナントを保有してる場合があると思います。

Azureのマネージドディスクはサブスクリプション間だけではなく、別テナントにコピーすることも可能です。


なお、マネージドディスクをコピーした場合、コピー先のテナントにはアンマネージドディスクとしてコピーされます。

そのため、コピー完了後に必要に応じてマネージドディスクに変換する必要があります。


今回はディスクを別テナントにコピーする方法を紹介します。

1.BLOBストレージ作成

まずはコピー先テナントでディスクを格納するBLOBストレージを用意します。


1.「ストレージアカウント」-「作成」をクリックします。




2.「詳細設定」で下記にチェックを入れます。※その他は任意の値を設定

  • ストレージアカウントキーへのアクセスを有効にする



3.左ペイン「コンテナー」-「コンテナー」をクリックします。




4.コンテナ名を指定し、「作成」をクリックします。




2.ディスクコピー

コピー先のコンテナを作成したら実際にディスクをコピーします。


まずは各テナントにログインし、操作するサブスクリプションを指定します。

Get-AzSubscription
Select-AzSubscription -SubscriptionId <SubscriptionID>



2.1.コピー元ディスク設定

コピー元のテナントでディスクのSAS(Shared Access Signatures) URIを作成します。

また、URI作成後に値を確認しておきます。

$srcrg = “rg-test”
$srcdisk = “disk-test”
$srcsas = Grant-AzDiskAccess -ResourceGroupName $srcrg -DiskName $srcdisk -Access Read -DurationInSecond 3600
$srcsas.accessSAS ※値を確認


下記のエラーが表示された場合、対象ディスクのネットワーク設定を変更します。

Grant-AzDiskAccess : Access not permitted for disk disk-test because the network access policy is DenyAll.
ErrorCode: NetworkAccessPolicyIsDenyAll
ErrorMessage: Access not permitted for disk disk-test because the network access policy is DenyAll.




2.2.コピー先ディスク設定

次にコピー先のテナントで作業します。

必要な変数を定義し、ストレージアカウントキーを作成します。

$destrg = “rg-test”
$destst = “st-test”
$deststc = “stc-test”

$deststkey = Get-AzStorageAccountKey -ResourceGroupName $destrg -Name $destst
$deststctx = New-AzStorageContext -StorageAccountName $destst -StorageAccountKey $deststkey[0].value
$deststc = Get-AzStorageContainer -Name $deststc -Context $deststctx




2.3.コピー実施

本手順でもコピー先のテナントで操作します。

ディスクコピーのオプションを指定します。

$destdisk = “disk-test.vhd”
$srcsasuri = <$srcsas.accessSASで確認した値>
$ops = Start-AzStorageBlobCopy -AbsoluteUri $srcsasuri -DestBlob $destdisk -DestContainer $deststc.Name -DestContext $deststctx



オプションを指定してコピーを実施します。※成功すると「Success」が表示されます

Get-AzStorageBlobCopyState -Container $deststc.Name -Blob $destdisk -Context $deststctx -WaitForComplete


ディスクがコピー先テナントのコンテナにコピーされたことを確認します。




3.マネージドディスク変換

最後にアンマネージドディスクをマネージドディスクに変換します。


まずはディスク変換に必要な変数を定義します。

$location = “japaneast” ※Get-AzLocationで確認可能
$diskname = “mdisk-test”
$vhdurl = “https://<stname>.blob.core.windows.net/<コンテナ名>/<VHD名.vhd>”
$accounttype = “Premium_LRS”
$ostype = “Windows”
$stid = (Get-AzStorageAccount -Name staccountdevelop -ResourceGroupName rg-test).Id


VHDのURLは下記をコピーして指定します。




先ほど定義した変数を用いてディスク設定を指定します。

$diskconf = New-AzDiskConfig -AccountType $accounttype -Location $location -CreateOption Import -SourceUri $vhdurl -OsType $ostype -StorageAccountId $stid


ディスクをマネージドディスクに変換します。

New-AzDisk -DiskName $diskname -Disk $diskconf -ResourceGroupName $destrg



マネージドディスクに変換されたことを確認します。



Azureのディスクを別テナントにコピーする方法は以上です。

コメント

タイトルとURLをコピーしました