Limitare l'accesso all'importazione ed esportazione per i dischi gestiti usando collegamento privato

Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili

Usa endpoint privati per limitare l'importazione e l'esportazione di dischi gestiti. Accedere in modo sicuro ai dati tramite collegamento privato di Azure dai client nella rete virtuale Azure. L'endpoint privato usa un indirizzo IP dello spazio di indirizzi della rete virtuale per il servizio Managed Disks. Il traffico tra i client nella rete virtuale e i dischi gestiti rimane nella rete virtuale e collegamento privato nella rete backbone Microsoft, riducendo così l'esposizione alla rete Internet pubblica.

Questo articolo illustra come configurare collegamento privato per l'importazione e l'esportazione di dischi gestiti usando interfaccia della riga di comando di Azure o Azure PowerShell. Creare una risorsa di accesso al disco e collegarla a una rete virtuale nella stessa sottoscrizione creando un endpoint privato. Associare quindi un disco o uno snapshot alla risorsa di accesso al disco. Infine, impostare i criteri di accesso alla rete del disco o dello snapshot su AllowPrivate per limitare l'accesso alla propria rete virtuale.

Impostare i criteri di accesso alla rete su DenyAll per impedire a chiunque di esportare dati da un disco o uno snapshot. I criteri di accesso alla rete predefiniti sono AllowAll.

Prerequisiti

Prima di iniziare, installare il modulo interfaccia della riga di comando di Azure o Azure PowerShell più recente.

Limitazioni

  • Non è possibile importare o esportare più di 100 dischi o snapshot contemporaneamente con la stessa risorsa di accesso al disco
  • Non è possibile caricare in un disco con una risorsa di accesso al disco e un set di crittografia del disco
  • Oltre alle destinazioni di scalabilità che si applicano ai singoli dischi, le risorse di accesso al disco hanno più destinazioni di scalabilità incentrate sull'ingresso/uscita dei dati. Questi limiti si applicano cumulativamente a tutti i dischi associati a una risorsa di accesso al disco. Per informazioni dettagliate, vedere qui
  • La risorsa di accesso al disco deve trovarsi nella stessa area e nella stessa sottoscrizione del disco a cui è associata

Accedere e impostare le variabili

Scegliere una scheda per usare interfaccia della riga di comando di Azure o Azure PowerShell. Impostare i valori per la sottoscrizione, il gruppo di risorse, l'area, la risorsa di accesso al disco, la rete virtuale, la subnet, l'endpoint privato e la zona DNS privata. Le procedure rimanenti riutilizzano queste variabili. Per creare uno snapshot protetto, specificare anche il nome di un disco di origine esistente e un nome per il nuovo snapshot.

subscriptionId=yourSubscriptionId
resourceGroupName=yourResourceGroupName
region=northcentralus
diskAccessName=yourDiskAccessForPrivateLink
vnetName=yourVnetForPrivateLink
subnetName=yourSubnetForPrivateLink
privateEndpointName=yourPrivateEndpointForSecureMDExportImport
privateEndpointConnectionName=yourPrivateEndpointConnection
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 Link.
snapshotNameSecuredWithPrivateLink=yourSnapshotNameSecuredWithPrivateLink

az login
az account set --subscription $subscriptionId

Creare una risorsa di accesso al disco

Usa il gruppo di risorse, l'area geografica e il nome della risorsa di accesso al disco che hai definito in precedenza. Il comando az disk-access create crea la risorsa di accesso al disco. Az disk-access show archivia quindi l'ID risorsa in $diskAccessId per le procedure successive.

az disk-access create -n $diskAccessName -g $resourceGroupName -l $region

diskAccessId=$(az disk-access show -n $diskAccessName -g $resourceGroupName --query [id] -o tsv)

Creare una rete virtuale

I criteri di rete, ad esempio i gruppi di sicurezza di rete ,non sono supportati per gli endpoint privati. Per distribuire un endpoint privato in una subnet, disabilitare i criteri di rete degli endpoint privati in tale subnet.

Usare il gruppo di risorse, la rete virtuale e i nomi di subnet definiti in precedenza. Il comando az network vnet create crea la rete virtuale e la subnet. Quindi, az network vnet subnet update disabilita i criteri di rete dei private endpoint nella subnet.

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

Creare un endpoint privato per la risorsa di accesso al disco

Usare il gruppo di risorse, l'endpoint privato, la rete virtuale, la subnet e i nomi di connessione definiti in precedenza. Anche questa procedura utilizza $diskAccessId dalla procedura relativa alla risorsa di accesso al disco. Il comando az network private-endpoint create crea un endpoint privato per la risorsa di accesso al disco.

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

Configurare la zona DNS privato

Creare una zona DNS privata per il dominio BLOB di archiviazione, creare un collegamento di rete virtuale e quindi creare un gruppo di zone DNS che associa l'endpoint privato alla zona DNS privata.

Usare il gruppo di risorse, la zona DNS privata, il collegamento di rete virtuale, l'endpoint privato e i nomi dei gruppi di zone DNS definiti in precedenza. I comandi seguenti creano la zona DNS privata, la collegano alla rete virtuale e la associano all'endpoint privato.

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

Definire il nome del disco gestito, lo SKU di archiviazione e le dimensioni per questa procedura. La procedura riutilizza il gruppo di risorse, l'area e il nome della risorsa di accesso al disco definiti in precedenza. Il comando az disk create crea un disco gestito vuoto, lo associa alla risorsa di accesso al disco e imposta i criteri di accesso alla rete su AllowPrivate.

# 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

Usare il disco di origine esistente, il nuovo snapshot, il gruppo di risorse, l'area e i nomi delle risorse di accesso al disco definiti in precedenza. Il comando az disk show ottiene l'ID disco di origine. Quindi, az snapshot create crea lo snapshot, lo associa alla risorsa di accesso al disco e imposta il criterio di accesso alla rete su AllowPrivate.

# 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 $snapshotNameSecuredWithPrivateLink \
    -g $resourceGroupName \
    -l $region \
    --source $diskId \
    --network-access-policy AllowPrivate \
    --disk-access $diskAccessId

Passaggi successivi