適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット
プライベート エンドポイントを使用して、マネージド ディスクのインポートとエクスポートを制限します。 Azure仮想ネットワーク内のクライアントからPrivate Link経由でデータに安全にアクセスします。 プライベート エンドポイントは、マネージド ディスク サービスの仮想ネットワーク アドレス空間の IP アドレスを使用します。 仮想ネットワーク内のクライアントとマネージド ディスク間のトラフィックは、仮想ネットワークと Microsoft バックボーン ネットワーク上のプライベート リンクに留まります。これにより、パブリック インターネットへの露出が減少します。
マネージド ディスクのインポートまたはエクスポートに Private Links を使用するには、ディスク アクセス リソースを作成し、プライベート エンドポイントを作成して同じサブスクリプション内の仮想ネットワークにリンクします。 次に、ディスクまたはスナップショットをディスク アクセス リソースに関連付けます。 最後に、ディスクまたはスナップショットのネットワーク アクセス ポリシーを AllowPrivate に設定して、仮想ネットワークへのアクセスを制限します。
ネットワーク アクセス ポリシーを DenyAll に設定して、ディスクまたはスナップショットからデータをエクスポートできないようにします。 既定のネットワーク アクセス ポリシーは AllowAll。
前提条件
開始する前に、最新のAzure CLIまたはAzure PowerShell モジュールをインストールします。
制限事項
- 同じディスク アクセス リソースで同時に 100 を超えるディスクまたはスナップショットをインポートまたはエクスポートすることはできません
- ディスク アクセス リソースとディスク暗号化セットの両方を持つディスクにアップロードすることはできません
- 個々のディスクに適用されるスケール ターゲットに加えて、ディスク アクセス リソースには、データのイングレス/エグレスを中心とするスケール ターゲットが増えています。 これらの制限は、ディスク アクセス リソースに関連付けられているすべてのディスクに累積的に適用されます。 詳しくは こちらをご覧ください。
- ディスク アクセス リソースは、関連付けるディスクと同じリージョンとサブスクリプションに存在する必要があります
サインインして変数を設定する
Azure CLIまたはAzure PowerShellを使用するタブを選択します。
subscriptionId=yourSubscriptionId
resourceGroupName=yourResourceGroupName
region=northcentralus
diskAccessName=yourDiskAccessForPrivateLinks
vnetName=yourVNETForPrivateLinks
subnetName=yourSubnetForPrivateLinks
privateEndPointName=yourPrivateLinkForSecureMDExportImport
privateEndPointConnectionName=yourPrivateLinkConnection
privateDnsZoneName=privatelink.blob.core.windows.net
privateDnsZoneLinkName=yourDNSLink
privateDnsZoneGroupName=yourZoneGroup
# The name of an existing disk that is the source of the snapshot.
sourceDiskName=yourSourceDiskForSnapshot
# The name of the new snapshot secured with Private Links.
snapshotNameSecuredWithPL=yourSnapshotNameSecuredWithPL
az login
az account set --subscription $subscriptionId
ディスク アクセス リソースを作成する
az disk-access create -n $diskAccessName -g $resourceGroupName -l $region
diskAccessId=$(az disk-access show -n $diskAccessName -g $resourceGroupName --query [id] -o tsv)
仮想ネットワークを作成する
ネットワーク セキュリティ グループ (NSG) などのネットワーク ポリシーは、プライベート エンドポイントではサポートされていません。 サブネットにプライベート エンドポイントをデプロイするには、そのサブネットのプライベート エンドポイント ネットワーク ポリシーを無効にします。
az network vnet create --resource-group $resourceGroupName \
--name $vnetName \
--subnet-name $subnetName
az network vnet subnet update --resource-group $resourceGroupName \
--name $subnetName \
--vnet-name $vnetName \
--private-endpoint-network-policies Disabled
ディスク アクセス リソースのプライベート エンドポイントを作成する
az network private-endpoint create --resource-group $resourceGroupName \
--name $privateEndPointName \
--vnet-name $vnetName \
--subnet $subnetName \
--private-connection-resource-id $diskAccessId \
--group-ids disks \
--connection-name $privateEndPointConnectionName
プライベート DNS ゾーンを構成する
ストレージ BLOB ドメインのプライベート DNS ゾーンを作成し、仮想ネットワーク リンクを作成してから、プライベート エンドポイントをプライベート DNS ゾーンに関連付ける DNS ゾーン グループを作成します。
az network private-dns zone create --resource-group $resourceGroupName \
--name $privateDnsZoneName
az network private-dns link vnet create --resource-group $resourceGroupName \
--zone-name $privateDnsZoneName \
--name $privateDnsZoneLinkName \
--virtual-network $vnetName \
--registration-enabled false
az network private-endpoint dns-zone-group create \
--resource-group $resourceGroupName \
--endpoint-name $privateEndPointName \
--name $privateDnsZoneGroupName \
--private-dns-zone $privateDnsZoneName \
--zone-name disks
プライベート リンクで保護されたマネージド ディスクを作成する
# These variables are specific to this step.
diskName=yourDiskName
diskSkuName=Standard_LRS
diskSizeGB=128
diskAccessId=$(az resource show -n $diskAccessName -g $resourceGroupName --namespace Microsoft.Compute --resource-type diskAccesses --query [id] -o tsv)
az disk create -n $diskName \
-g $resourceGroupName \
-l $region \
--size-gb $diskSizeGB \
--sku $diskSkuName \
--network-access-policy AllowPrivate \
--disk-access $diskAccessId
プライベート リンクで保護されたスナップショットを作成する
# This step reuses variables defined in the first CLI sample.
diskId=$(az disk show -n $sourceDiskName -g $resourceGroupName --query [id] -o tsv)
diskAccessId=$(az resource show -n $diskAccessName -g $resourceGroupName --namespace Microsoft.Compute --resource-type diskAccesses --query [id] -o tsv)
az snapshot create -n $snapshotNameSecuredWithPL \
-g $resourceGroupName \
-l $region \
--source $diskId \
--network-access-policy AllowPrivate \
--disk-access $diskAccessId
次のステップ
- VHD をAzureにアップロードするか、マネージド ディスクを別のリージョンにコピーするには、Azure CLIまたはAzure PowerShell モジュールを使用します。
- VHD をダウンロードするには、「Windowsまたは Linux」を参照してください。
- プライベート リンクに関する FAQ。
- Azure CLIを使用して、マネージド スナップショットを VHD として別のリージョンのストレージ アカウントにエクスポートまたはコピーします。