Interfejs wiersza polecenia platformy Azure — ograniczanie dostępu do importowania/eksportowania dysków zarządzanych przy użyciu usługi Private Links

Dotyczy: Elastyczne zestawy ✔️ skalowania maszyn ✔️ wirtualnych z systemem Linux

Za pomocą prywatnych punktów końcowych można ograniczyć eksport i import dysków zarządzanych oraz bezpiecznie uzyskać dostęp do danych za pośrednictwem Private Link z klientów w sieci wirtualnej platformy Azure. Prywatny punkt końcowy używa adresu IP z przestrzeni adresowej sieci wirtualnej dla usługi dysków zarządzanych. Ruch sieciowy między klientami w sieci wirtualnej i dyskach zarządzanych przechodzi tylko przez sieć wirtualną i łącze prywatne w sieci szkieletowej firmy Microsoft, eliminując narażenie z publicznego Internetu.

Aby użyć linków prywatnych do eksportowania/importowania dysków zarządzanych, należy najpierw utworzyć zasób dostępu do dysku i połączyć go z siecią wirtualną w tej samej subskrypcji, tworząc prywatny punkt końcowy. Następnie należy skojarzyć dysk lub migawkę z wystąpieniem dostępu do dysku. Na koniec ustaw właściwość NetworkAccessPolicy dysku lub migawki na wartość AllowPrivate. Spowoduje to ograniczenie dostępu do sieci wirtualnej.

Właściwość NetworkAccessPolicy można ustawić na wartość , DenyAll aby uniemożliwić każdemu eksportowanie danych dysku lub migawki. Wartość domyślna właściwości NetworkAccessPolicy to AllowAll.

Ograniczenia

  • Sieć wirtualna musi znajdować się w tej samej subskrypcji co obiekt dostępu do dysku, aby je połączyć.
  • Nie można importować ani eksportować więcej niż 10 dysków ani migawek jednocześnie przy użyciu tego samego obiektu dostępu do dysku.
  • Nie można zażądać ręcznego zatwierdzenia w celu połączenia sieci wirtualnej z obiektem dostępu do dysku.

Zaloguj się do subskrypcji i ustaw zmienne

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

Tworzenie dostępu do dysku przy użyciu interfejsu wiersza polecenia platformy Azure

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

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

Tworzenie sieci wirtualnej

Zasady sieciowe, takie jak sieciowe grupy zabezpieczeń (NSG), nie są obsługiwane w przypadku prywatnych punktów końcowych. W celu wdrożenia prywatnego punktu końcowego w danej podsieci wymagane jest jawne wyłączenie tej podsieci.

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

Wyłączanie zasad prywatnego punktu końcowego podsieci

Platforma Azure wdraża zasoby w podsieci w sieci wirtualnej, dlatego należy zaktualizować podsieć, aby wyłączyć zasady sieci prywatnego punktu końcowego.

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

Tworzenie prywatnego punktu końcowego dla obiektu 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 strefy Prywatna strefa DNS danych

Utwórz strefę Prywatna strefa DNS dla domeny obiektów blob usługi Storage, utwórz link skojarzenia z usługą Virtual Network i utwórz grupę stref DNS w celu skojarzenia prywatnego punktu końcowego z Prywatna strefa DNS strefą.

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 

Następne kroki