Ограничение доступа к импорту и экспорту управляемых дисков с помощью Приватный канал

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Гибкие масштабируемые наборы

Используйте частные конечные точки для ограничения импорта и экспорта управляемого диска. Безопасный доступ к данным через Приватный канал Azure от клиентов в виртуальной сети Azure. Частный конечный пункт использует IP-адрес из адресного пространства вашей виртуальной сети для вашей службы управляемых дисков. Трафик между клиентами в виртуальной сети и управляемыми дисками остается в виртуальной сети и Приватный канал в магистральной сети Microsoft, что снижает уязвимость к общедоступному Интернету.

В этой статье показано, как настроить Приватный канал для импорта и экспорта управляемых дисков с помощью Azure CLI или Azure PowerShell. Создайте ресурс доступа к диску и свяжите его с виртуальной сетью в той же подписке, создав частную конечную точку. Затем свяжите диск или моментальный снимок с ресурсом доступа к диску. Наконец, установите политику сетевого доступа для диска или снимка в значение AllowPrivate, чтобы ограничить доступ к вашей виртуальной сети.

Установите для политики доступа к сети значение DenyAll, чтобы никто не мог экспортировать данные с диска или моментального снимка. Политика сетевого доступа AllowAllпо умолчанию.

Необходимые условия

Прежде чем начать, установите последнюю версию модуля Azure CLI или Azure PowerShell.

Ограничения

  • Вы не можете импортировать или экспортировать более 100 дисков или моментальных снимков одновременно с тем же ресурсом доступа к диску
  • Невозможно передать на диск как ресурс доступа к диску, так и набор шифрования дисков.
  • Помимо целевых объектов масштабирования, которые применяются к отдельным дискам, ресурсы доступа к дискам имеют более масштабируемые целевые объекты, центрированные вокруг входящего или исходящего трафика данных. Эти ограничения применяются совокупно ко всем дискам, связанным с ресурсом доступа к диску. Дополнительные сведения см . здесь
  • Ресурс доступа к диску должен находиться в том же регионе и подписке, что и связанный с ним диск.

Вход и задание переменных

Выберите вкладку для использования Azure CLI или Azure PowerShell. Задайте значения для подписки, группы ресурсов, региона, ресурса доступа к диску, виртуальной сети, подсети, частной конечной точки и частной зоны DNS. Остальные процедуры повторно используют эти переменные. Чтобы создать защищенный моментальный снимок, укажите имя существующего исходного диска и имя нового моментального снимка.

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

Создание ресурса доступа к диску

Используйте имя ресурса для группы ресурсов, региона и доступа к диску, определенного ранее. Команда az disk-access create создает ресурс доступа к диску. Затем az disk-access show сохраняет свой идентификатор ресурса в $diskAccessId последующих процедурах.

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

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

Создание виртуальной сети

Политики сети, такие как группы безопасности сети (NSG), не поддерживаются для частных конечных точек. Чтобы развернуть частную конечную точку доступа в подсети, отключите в ней сетевые политики для частных конечных точек.

Используйте группу ресурсов, виртуальные сети и имена подсетей, определенные ранее. Команда az network vnet create создает виртуальную сеть и подсеть. Затем, az network vnet subnet update отключает сетевые политики для частных конечных точек в подсети.

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

Создание частной конечной точки для ресурса доступа к диску

Используйте группу ресурсов, частную конечную точку, виртуальную сеть, подсеть и имена подключений, определенные ранее. Эта процедура также использует $diskAccessId из процедуры ресурса доступа к диску. Команда az network private-endpoint create создает частную конечную точку для ресурса доступа к диску.

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

Настройка частной зоны DNS

Создайте частную зону DNS для домена BLOB-объектов хранилища, создайте ссылку виртуальной сети, а затем создайте группу зон DNS, которая связывает частную конечную точку с частной зоной DNS.

Используйте группу ресурсов, частную зону DNS, связь виртуальной сети, частную конечную точку и имена групп зон DNS, определенные ранее. Следующие команды создают частную зону DNS, связывают ее с виртуальной сетью и связывают ее с частной конечной точкой.

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

Определите имя управляемого диска, номер SKU хранилища и размер этой процедуры. В этой процедуре повторно используются группа ресурсов, регион и имя ресурса доступа к дискам, которые вы определили ранее. Команда az disk create создает пустой управляемый диск, связывает его с ресурсом доступа к диску и задает для него политику 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

Используйте существующий исходный диск, новый моментальный снимок, группу ресурсов, регион и имена ресурсов доступа к диску, определенные ранее. Команда az disk show получает идентификатор исходного диска. Затем az snapshot create создает моментальный снимок , связывает его с ресурсом доступа к диску и задает для него политику 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

Дальнейшие действия