Restreindre l’accès d’importation et d’exportation pour les disques managés à l’aide de Private Link

S’applique à : ✔️ Machines virtuelles Linux ✔️ Machines virtuelles Windows ✔️ Ensembles à échelle flexible

Utilisez des points de terminaison privés pour restreindre l’importation et l’exportation de disques managés. Accédez en toute sécurité aux données via Azure Private Link à partir de clients de votre réseau virtuel Azure. Le point de terminaison privé utilise une adresse IP provenant de l’espace d’adressage de votre réseau virtuel pour votre service de disques managés. Le trafic entre les clients de votre réseau virtuel et les disques managés reste sur le réseau virtuel et Private Link sur le réseau principal Microsoft, ce qui réduit l’exposition à l’Internet public.

Cet article explique comment configurer Private Link pour l’importation et l’exportation de disques managés à l’aide de Azure CLI ou de Azure PowerShell. Créez une ressource d’accès au disque et liez-la à un réseau virtuel dans le même abonnement en créant un point de terminaison privé. Associez ensuite un disque ou un instantané à la ressource d’accès au disque. Enfin, définissez la stratégie d’accès réseau du disque ou de l’instantané sur AllowPrivate afin de limiter l’accès à votre réseau virtuel.

Définissez la stratégie d’accès réseau sur DenyAll afin d’empêcher quiconque d’exporter des données depuis un disque ou un instantané. La stratégie d’accès réseau par défaut est AllowAll.

Prerequisites

Avant de commencer, installez le dernier moduleAzure CLI ou Azure PowerShell.

Limites

  • Vous ne pouvez pas importer ou exporter plus de 100 disques ou instantanés en même temps avec la même ressource d’accès au disque
  • Vous ne pouvez pas charger sur un disque avec une ressource d’accès au disque et un jeu de chiffrement de disque
  • Outre les cibles de mise à l’échelle qui s’appliquent à des disques individuels, les ressources d’accès aux disques ont davantage de cibles d’échelle centrées sur l’entrée/sortie des données. Ces limites s’appliquent cumulativement à tous les disques associés à une ressource d’accès au disque. Pour plus d’informations , voir ici
  • La ressource d’accès au disque doit se trouver dans la même région et dans le même abonnement que le disque auquel vous l’associez

Se connecter et définir des variables

Choisissez un onglet pour utiliser Azure CLI ou Azure PowerShell. Définissez des valeurs pour votre abonnement, groupe de ressources, région, ressource d’accès au disque, réseau virtuel, sous-réseau, point de terminaison privé et zone DNS privée. Les procédures restantes réutilisent ces variables. Pour créer un instantané protégé, indiquez également le nom d’un disque source existant et un nom pour le nouvel instantané.

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

Créer une ressource d’accès au disque

Utilisez le groupe de ressources, la région et le nom de la ressource d’accès au disque que vous avez définis précédemment. La commande az disk-access create crée la ressource d’accès au disque. Ensuite, az disk-access show stocke son ID de ressource dans $diskAccessId pour les procédures ultérieures.

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

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

Créer un réseau virtuel

Les stratégies réseau telles que les groupes de sécurité réseau (NSG) ne sont pas prises en charge pour les points de terminaison privés. Pour déployer un point de terminaison privé sur un sous-réseau, désactivez les stratégies de réseau de point de terminaison privé sur ce sous-réseau.

Utilisez le groupe de ressources, le réseau virtuel et les noms de sous-réseaux que vous avez définis précédemment. La commande az network vnet create crée le réseau virtuel et le sous-réseau. Ensuite, az network vnet subnet update désactive les stratégies réseau de point de terminaison privé sur le sous-réseau.

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

Créer un point de terminaison privé pour la ressource d’accès au disque

Utilisez le groupe de ressources, le point de terminaison privé, le réseau virtuel, le sous-réseau et les noms de connexion que vous avez définis précédemment. Cette procédure utilise également $diskAccessId de la procédure de ressource d’accès au disque. La commande az network private-endpoint create crée un point de terminaison privé pour la ressource d’accès au disque.

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

Configurer la zone DNS privée

Créez une zone DNS privée pour le domaine d’objets blob de stockage, créez une liaison de réseau virtuel, puis créez un groupe de zones DNS qui associe le point de terminaison privé à la zone DNS privée.

Utilisez le groupe de ressources, la zone DNS privée, la liaison de réseau virtuel, le point de terminaison privé et les noms de groupes de zones DNS que vous avez définis précédemment. Les commandes suivantes créent la zone DNS privée, lient-la au réseau virtuel et associez-la au point de terminaison privé.

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

Définissez le nom du disque managé, la référence SKU de stockage et la taille de cette procédure. La procédure réutilise le nom de ressource, de région et de ressource d’accès au disque que vous avez défini précédemment. La commande az disk create crée un disque managé vide, l’associe à la ressource d’accès au disque et définit sa stratégie d’accès réseau sur 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

Utilisez le disque source existant, le nouvel instantané, le groupe de ressources, la région et les noms de ressources d’accès au disque que vous avez définis précédemment. La commande az disk show obtient l’ID de disque source. Ensuite, az snapshot create crée l’instantané, l’associe à la ressource d’accès au disque et définit sa stratégie d’accès réseau sur 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

Étapes suivantes