Ograniczanie dostępu do importu i eksportowania dla dysków zarządzanych przy użyciu Private Link

Dotyczy: ✔️ Maszyny wirtualne Linux ✔️ Maszyny wirtualne Windows ✔️ Elastyczne zestawy skalowania

Użyj prywatnych punktów końcowych , aby ograniczyć importowanie i eksportowanie dysku zarządzanego. Bezpieczny dostęp do danych za pośrednictwem Azure Private Link od klientów w sieci wirtualnej Azure. Prywatny punkt końcowy używa adresu IP z przestrzeni adresowej Twojej sieci wirtualnej dla usługi dysków zarządzanych. Ruch między klientami w Twojej sieci wirtualnej a dyskami zarządzanymi pozostaje w sieci wirtualnej oraz w usłudze Private Link w sieci szkieletowej firmy Microsoft, co zmniejsza narażenie na publiczny internet.

W tym artykule pokazano, jak skonfigurować Private Link na potrzeby importowania i eksportowania dysku zarządzanego przy użyciu Azure CLI lub Azure PowerShell. Utwórz zasób dostępu do dysku i połącz go z siecią wirtualną w tej samej subskrypcji, tworząc prywatny punkt końcowy. Następnie skojarz dysk lub migawkę z zasobem dostępu do dysku. Na koniec ustaw zasadę dostępu do sieci dysku lub migawki na AllowPrivate, aby ograniczyć dostęp do Twojej sieci wirtualnej.

Ustaw zasady dostępu sieciowego na DenyAll, aby uniemożliwić komukolwiek eksportowanie danych z dysku lub migawki. Domyślne zasady dostępu do sieci to AllowAll.

Wymagania wstępne

Przed rozpoczęciem zainstaluj najnowszy moduł Azure CLI lub Azure PowerShell.

Ograniczenia

  • Nie można jednocześnie importować ani eksportować więcej niż 100 dysków ani migawek z tym samym zasobem dostępu do dysku
  • Nie można przesyłać na dysk, który ma zarówno zasób dostępu do dysku, jak i zestaw szyfrowania dysku
  • Oprócz celów skalowania, które mają zastosowanie do poszczególnych dysków, zasoby dostępu do dysków mają więcej obiektów docelowych skalowania, które są skoncentrowane wokół ruchu przychodzącego/wychodzącego danych. Te limity mają zastosowanie zbiorczo do wszystkich dysków skojarzonych z zasobem dostępu do dysku. Aby uzyskać szczegółowe informacje, zobacz tutaj
  • Zasób dostępu do dysku musi znajdować się w tym samym regionie i subskrypcji co dysk, z którym jest skojarzony

Logowanie i ustawianie zmiennych

Wybierz kartę, aby skorzystać z Azure CLI lub Azure PowerShell. Ustaw wartości dla subskrypcji, grupy zasobów, regionu, zasobu dostępu do dysku, sieci wirtualnej, podsieci, prywatnego punktu końcowego i prywatnej strefy DNS. Pozostałe procedury ponownie użyją tych zmiennych. Aby utworzyć chronioną migawkę, podaj również nazwę istniejącego dysku źródłowego i nazwę nowej migawki.

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

Tworzenie zasobu dostępu do dysku

Użyj grupy zasobów, regionu i nazwy zasobu dostępu do dysków, które zostały wcześniej zdefiniowane. Polecenie az disk-access create tworzy zasób dostępu do dysku. Następnie polecenie az disk-access show zapisuje jego identyfikator zasobu w $diskAccessId, aby użyć go w późniejszych procedurach.

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

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

Utwórz wirtualną sieć

Zasady sieciowe, takie jak sieciowe grupy zabezpieczeń, nie są obsługiwane w przypadku prywatnych punktów końcowych. Aby wdrożyć prywatny punkt końcowy w podsieci, wyłącz zasady sieci prywatnego punktu końcowego w tej podsieci.

Użyj nazw grupy zasobów, sieci wirtualnej i podsieci, które zostały wcześniej zdefiniowane. Polecenie az network vnet create tworzy sieć wirtualną i podsieć. Następnie polecenie az network vnet subnet update wyłącza zasady sieciowe prywatnego punktu końcowego w podsieci.

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

Tworzenie prywatnego punktu końcowego dla zasobu dostępu do dysku

Użyj zdefiniowanej wcześniej grupy zasobów, prywatnego punktu końcowego, sieci wirtualnej, podsieci i nazw połączeń. Ta procedura również wykorzystuje $diskAccessId z procedury zasobu dostępu do dysku. Polecenie az network private-endpoint create tworzy prywatny punkt końcowy dla zasobu dostępu do dysku.

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

Konfigurowanie prywatnej strefy DNS

Utwórz prywatną strefę DNS dla domeny obiektu blob magazynu, utwórz łącze sieci wirtualnej, a następnie utwórz grupę stref DNS, która kojarzy prywatny punkt końcowy z prywatną strefą DNS.

Użyj grupy zasobów, prywatnej strefy DNS, łącza sieci wirtualnej, prywatnego punktu końcowego i nazw grup stref DNS zdefiniowanych wcześniej. Następujące polecenia tworzą prywatną strefę DNS, łączą ją z siecią wirtualną i kojarzą ją z prywatnym punktem końcowym.

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

Zdefiniuj nazwę dysku zarządzanego, jednostkę SKU magazynu i rozmiar dla tej procedury. Procedura ponownie wykorzystuje grupę zasobów, region oraz nazwę zasobu dostępu do dysku, które zdefiniowano wcześniej. Polecenie az disk create tworzy pusty dysk zarządzany, kojarzy go z zasobem dostępu do dysku i ustawia zasady dostępu do sieci na 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

Użyj istniejącego dysku źródłowego, nowej migawki, grupy zasobów, regionu i nazw zasobów dostępu do dysków, które zostały wcześniej zdefiniowane. Polecenie az disk show pobiera identyfikator dysku źródłowego. Następnie az snapshot create tworzy migawkę, kojarzy ją z zasobem dostępu do dysku i ustawia zasady dostępu do sieci na .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

Następne kroki