Azure CLI - Batasi akses impor/ekspor untuk disk yang dikelola dengan Private Link

Berlaku untuk: ✔️ Mesin Virtual Linux ✔️ Set skala fleksibel

Anda dapat menggunakan titik akhir privat untuk membatasi ekspor dan impor disk terkelola dan mengakses data dengan aman melalui Private Link dari klien di jaringan virtual Azure Anda. Titik akhir privat menggunakan alamat IP dari ruang alamat jaringan virtual untuk layanan disk terkelola Anda. Lalu lintas jaringan di antara klien di jaringan virtual mereka dan disk yang dikelola hanya melintasi jaringan virtual dan tautan privat di jaringan backbone Microsoft, menghilangkan paparan dari internet publik.

Agar dapat menggunakan Private Link untuk mengekspor/mengimpor disk terkelola, pertama-tama Anda membuat sumber daya akses disk dan menautkannya ke jaringan virtual dalam langganan yang sama dengan membuat titik akhir privat. Selanjutnya, kaitkan disk atau snapshot dengan instans akses disk. Terakhir, atur properti NetworkAccessPolicy dari disk atau snapshot ke AllowPrivate. Ini akan membatasi akses ke jaringan virtual Anda.

Anda dapat mengatur properti NetworkAccessPolicy ke DenyAll untuk mencegah siapa pun mengekspor data disk atau snapshot. Nilai default untuk properti NetworkAccessPolicy adalah AllowAll.

Batasan

  • Anda tidak dapat mengimpor atau mengekspor lebih dari lima disk atau rekam jepret secara bersamaan dengan objek akses disk yang sama.
  • Anda tidak dapat mengunggah ke disk dengan objek akses disk dan set enkripsi disk.

Masuk ke langganan Anda dan atur variabel Anda

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

Membuat akses disk menggunakan 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)

Buat Virtual Network

Kebijakan jaringan seperti kelompok keamanan jaringan (NSG) tidak didukung untuk titik akhir privat. Untuk menyebarkan Titik Akhir Privat pada subnet tertentu, diperlukan pengaturan penonaktifan eksplisit pada subnet tersebut.

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

Menonaktifkan kebijakan titik akhir privat subnet

Azure menyebarkan sumber daya ke subnet dalam jaringan virtual, jadi, Anda harus memperbarui subnet untuk menonaktifkan kebijakan jaringan titik akhir privat.

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

Membuat titik akhir privat untuk objek akses disk

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

Mengonfigurasi Zona DNS Privat

Buat domain blob Zona DNS Privat untuk Penyimpanan, buat link gabungan dengan Virtual Network dan buat Grup Zona DNS untuk mengaitkan titik akhir privat dengan Zona DNS Privat.

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 

Langkah berikutnya