Azure CLI – Begränsa import-/exportåtkomst för hanterade diskar med privata länkar

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️

Du kan använda privata slutpunkter för att begränsa export och import av hanterade diskar och få säker åtkomst till data via en Private Link från klienter i ditt virtuella Azure-nätverk. Den privata slutpunkten använder en IP-adress från det virtuella nätverkets adressutrymme för din hanterade disktjänst. Nätverkstrafik mellan klienter i deras virtuella nätverk och hanterade diskar passerar bara över det virtuella nätverket och en privat länk i Microsofts stamnätverk, vilket eliminerar exponeringen från det offentliga Internet.

Om du vill använda privata länkar för att exportera/importera hanterade diskar skapar du först en resurs för diskåtkomst och länkar den till ett virtuellt nätverk i samma prenumeration genom att skapa en privat slutpunkt. Associera sedan en disk eller en ögonblicksbild med en instans av diskåtkomst. Slutligen anger du egenskapen NetworkAccessPolicy för disken eller ögonblicksbilden till AllowPrivate. Detta begränsar åtkomsten till ditt virtuella nätverk.

Du kan ange egenskapen NetworkAccessPolicy till för DenyAll att förhindra att någon exporterar data från en disk eller en ögonblicksbild. Standardvärdet för egenskapen NetworkAccessPolicy är AllowAll.

Begränsningar

  • Du kan inte importera eller exportera fler än fem diskar eller ögonblicksbilder samtidigt med samma diskåtkomstobjekt.
  • Du kan inte ladda upp till en disk med både ett diskåtkomstobjekt och en diskkrypteringsuppsättning.

Logga in på din prenumeration och ange variablerna

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

Skapa en diskåtkomst med Hjälp av 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)

Skapa ett virtuellt nätverk

Nätverksprinciper som nätverkssäkerhetsgrupper (NSG) stöds inte för privata slutpunkter. För att distribuera en privat slutpunkt i ett visst undernät krävs en explicit inaktivera-inställning för det undernätet.

az network vnet create --resource-group $resourceGroupName \
    --name $vnetName \
    --subnet-name $subnetName

Inaktivera principer för privata undernätsslutpunkter

Azure distribuerar resurser till ett undernät i ett virtuellt nätverk, så du måste uppdatera undernätet för att inaktivera nätverksprinciper för privata slutpunkter.

az network vnet subnet update --resource-group $resourceGroupName \
    --name $subnetName  \
    --vnet-name $vnetName \
    --disable-private-endpoint-network-policies true

Skapa en privat slutpunkt för diskåtkomstobjektet

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

Konfigurera Privat DNS-zonen

Skapa en Privat DNS Zon för lagringsblobdomän, skapa en kopplingslänk till det virtuella nätverket och skapa en DNS-zongrupp för att associera den privata slutpunkten med Privat DNS-zonen.

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 

Nästa steg