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

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

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 måste du först skapa en resurs för diskåtkomst och länka 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 för att DenyAll förhindra att någon exporterar data från en disk eller en ögonblicksbild. Standardvärdet för egenskapen NetworkAccessPolicy är AllowAll .

Begränsningar

  • Det virtuella nätverket måste finnas i samma prenumeration som diskåtkomstobjektet för att länka dem.
  • Du kan inte importera eller exportera fler än 10 diskar eller ögonblicksbilder samtidigt med samma diskåtkomstobjekt.
  • Du kan inte begära manuellt godkännande för att länka ett virtuellt nätverk till ett diskåtkomstobjekt.

Logga in på din prenumeration och ange dina variabler

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 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 kunna distribuera en privat slutpunkt i ett visst undernät krävs en explicit inaktiveringsinställning i det undernätet.

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

Inaktivera principer för privata slutpunkter för undernät

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 Storage-blobdomän, skapa en kopplingslänk med Virtual Network 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