適用於:✔️ Linux 虛擬機 ✔️ 彈性規模設定
您可以使用 私人端點 來限制受控磁碟的匯出和匯入,並透過 Azure 虛擬網路上的用戶端透過 Private Link 安全地存取資料。 您的受管磁碟服務的私人端點會使用虛擬網路位址空間中的 IP 位址。 在其虛擬網路上,用戶端與受控磁碟之間的網路流量僅透過該虛擬網路和 Microsoft 骨幹網路上的私有連結進行傳輸,避免暴露於公用互聯網。
若要使用私人連結匯出/匯入受控磁碟,請先建立磁碟存取資源,並藉由建立私人端點,將它連結至相同訂用帳戶中的虛擬網路。 然後,將磁碟或快照與磁碟存取執行個體建立關聯。 最後,將磁碟或快照集的 NetworkAccessPolicy 屬性設定為 AllowPrivate。 這會限制對虛擬網路的存取。
您可以將 NetworkAccessPolicy 屬性設定為 , DenyAll 以防止任何人匯出磁碟或快照集的資料。 NetworkAccessPolicy 屬性的預設值為 AllowAll。
局限性
- 您無法使用相同的磁碟存取資源同時匯入或匯出超過 100 個磁碟或快照
- 您無法上傳到同時具有磁碟存取資源和磁碟加密集的磁碟
- 除了套用至個別磁碟的縮放目標之外,磁碟存取資源還有更多以資料輸入/輸出為中心的縮放目標。 這些限制會累積套用至與磁碟存取資源相關聯的所有磁碟。 詳情請參見 此處
登入您的訂閱並設定變數
subscriptionId=yourSubscriptionId
resourceGroupName=yourResourceGroupName
region=northcentralus
diskAccessName=yourDiskAccessForPrivateLinks
vnetName=yourVNETForPrivateLinks
subnetName=yourSubnetForPrivateLinks
privateEndPointName=yourPrivateLinkForSecureMDExportImport
privateEndPointConnectionName=yourPrivateLinkConnection
#The name of an existing disk which is the source of the snapshot
sourceDiskName=yourSourceDiskForSnapshot
#The name of the new snapshot which will be secured via Private Links
snapshotNameSecuredWithPL=yourSnapshotNameSecuredWithPL
az login
az account set --subscription $subscriptionId
使用 Azure CLI 建立磁碟存取
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
停用子網路私人端點原則
Azure 會將資源部署至虛擬網路內的子網路,因此您必須更新子網路以停用私人端點網路原則。
az network vnet subnet update --resource-group $resourceGroupName \
--name $subnetName \
--vnet-name $vnetName \
--disable-private-endpoint-network-policies true
建立磁碟存取物件的私人端點
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 "privatelink.blob.core.windows.net"
az network private-dns link vnet create --resource-group $resourceGroupName \
--zone-name "privatelink.blob.core.windows.net" \
--name yourDNSLink \
--virtual-network $vnetName \
--registration-enabled false
az network private-endpoint dns-zone-group create \
--resource-group $resourceGroupName \
--endpoint-name $privateEndPointName \
--name yourZoneGroup \
--private-dns-zone "privatelink.blob.core.windows.net" \
--zone-name disks
建立受私人連結保護的磁碟
resourceGroupName=yourResourceGroupName
region=northcentralus
diskAccessName=yourDiskAccessName
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
建立受私密連結保護之磁碟快照
resourceGroupName=yourResourceGroupName
region=northcentralus
diskAccessName=yourDiskAccessName
sourceDiskName=yourSourceDiskForSnapshot
snapshotNameSecuredWithPL=yourSnapshotName
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
- 私人連結常見問題解答
- 使用 CLI 將受控快照集匯出/複製為 VHD 至不同區域中的儲存體帳戶