Службы "Файлы Azure" и "Синхронизация файлов Azure" предоставляют два основных типа конечных точек для доступа к общим папкам Azure:
- общедоступные конечные точки, у которых есть общедоступный IP-адрес и к которым можно обращаться из любой точки мира;
- частные конечные точки, которые существуют только в виртуальной сети и имеют частный IP-адрес в пределах адресного пространства этой виртуальной сети.
Для Файлы Azure и Синхронизация файлов Azure объекты управления Azure (учетная запись хранения и служба синхронизации хранилища) управляют как общедоступными, так и частными конечными точками. Учетная запись хранения — это управляемая структура, представляющая общий пул хранилища, в котором можно развернуть несколько файловых хранилищ, а также другие ресурсы хранилища, такие как блобы или очереди. Служба синхронизации хранилища — это управляющая конструкция, представляющая зарегистрированные серверы, которые являются файловыми серверами Windows с установленными отношениями доверия с Синхронизацией файлов Azure и группами синхронизации, определяющими топологию отношения синхронизации.
В этой статье обсуждается настройка конечных точек сети для Файлов Azure и Синхронизации файлов Azure. Дополнительные сведения о настройке конечных точек сети для прямого доступа к общим папкам Azure вместо локального кэширования с использованием Синхронизации файлов Azure см. в статье Настройка сетевых конечных точек Файлов Azure.
Перед чтением этого руководства рекомендуется ознакомиться с сетевыми рекомендациями для Azure File Sync.
Необходимые компоненты
В этой статье предполагается, что:
- у вас есть подписка Azure. Если у вас еще нет подписки, вы можете создать бесплатную учетную запись Azure, прежде чем начинать работу.
- Вы уже создали общую папку Azure в учетной записи хранения, к которой вы хотите подключиться из локальной среды. Чтобы узнать, как создать общую папку Azure, ознакомьтесь с этой статьей.
- Вы разрешаете трафик домена для следующих конечных точек, см. конечные точки служб Azure:
Кроме того:
Создание частной конечной точки
При создании частной конечной точки для ресурса Azure развертываются следующие ресурсы:
-
Частная конечная точка — это ресурс Azure, представляющий частную конечную точку для учетной записи хранения или службы синхронизации хранилища. Подумайте об этом как о ресурсе, который подключает ресурс Azure и сетевой интерфейс.
-
Сетевой интерфейс — ресурс для поддержки частного IP-адреса в указанной виртуальной сети или подсети. Это тот же ресурс, который развертывается при развертывании виртуальной машины, однако вместо назначения виртуальной машине он принадлежит частной конечной точке.
-
Частная зона DNS — если вы никогда не развертывали частную конечную точку для этой виртуальной сети, для нее будет развернута новая частная зона DNS. В этой зоне DNS также будет создана запись DNS типа A для ресурса Azure. Если вы уже развертывали частную конечную точку в этой виртуальной сети, новая запись типа A для ресурса Azure будет добавлена в существующую зону DNS. Развертывание зоны DNS не обязательно, но настоятельно рекомендуется для упрощения необходимого управления DNS.
Примечание.
В этой статье используются DNS-суффиксы для общедоступных регионов Azure: core.windows.net
для учетных записей хранения и afs.azure.net
для служб синхронизации хранилища. Это также относится к облакам Azure Sovereign, таким как облако Azure для государственных организаций США, просто замените соответствующие суффиксы для вашей среды.
Создание частной конечной точки для учетной записи хранения
Перейдите к учетной записи хранения, для которой вы хотите создать частную конечную точку. В меню службы в разделе "Безопасность и сеть" выберите "Сеть", "Подключения частной конечной точки", а затем + "Частная конечная точка", чтобы создать новую частную конечную точку.
В мастере нужно будет заполнить несколько страниц.
В колонке Основные сведения выберите нужную подписку, группу ресурсов, имя, имя сетевого интерфейса и регион для частной конечной точки. Они могут быть любыми, но не должны совпадать с учетной записью хранения. Тем не менее необходимо создать частную конечную точку в том же регионе, что и виртуальная сеть, в которой вы хотите создать частную конечную точку. Затем щелкните Далее: Ресурс.
В колонке Ресурс выберите для целевого подресурса файл. Затем выберите Далее: Виртуальная сеть.
В колонке Виртуальная сеть можно выбрать определенную виртуальную сеть и подсеть, в которую нужно добавить частную конечную точку. Выберите динамическое или статическое выделение IP-адреса для новой частной конечной точки. Если вы выберете статический режим, потребуется также указать имя и частный IP-адрес. При желании можно указать группу безопасности приложений. По завершении выберите Далее: DNS.
Колонка DNS содержит сведения об интеграции частной конечной точки с частной зоной DNS. Убедитесь в правильности подписки и группы ресурсов, затем щелкните Далее: теги.
При необходимости можно применить теги для классификации ресурсов (например, назначить тег с именем Среда и значением Тест всем ресурсам тестирования). При необходимости введите пары имени/значения, а затем нажмите кнопку Далее: Проверить и создать.
Выберите "Создать", чтобы создать частную конечную точку.
Если у вас есть виртуальная машина внутри виртуальной сети или вы настроили перенаправление DNS, как описано в разделе "Настройка перенаправления DNS для Файлы Azure", можно проверить правильность настройки частной конечной точки, выполнив следующие команды из PowerShell, командной строки или терминала (работает для Windows, Linux или macOS). Вы должны заменить <storage-account-name>
соответствующим именем учетной записи хранения.
nslookup <storage-account-name>.file.core.windows.net
Если все работает успешно, вы увидите следующие выходные данные, где 192.168.0.5
находится частный IP-адрес частной конечной точки в виртуальной сети (выходные данные, показанные для Windows):
Server: UnKnown
Address: 10.2.4.4
Non-authoritative answer:
Name: storageaccount.privatelink.file.core.windows.net
Address: 192.168.0.5
Aliases: storageaccount.file.core.windows.net
Чтобы создать частную конечную точку для учетной записи хранения, сначала нужно получить ссылку на учетную запись хранения и подсеть виртуальной сети, в которую вы хотите добавить частную конечную точку. Замените <storage-account-resource-group-name>
, <storage-account-name>
, <vnet-resource-group-name>
, <vnet-name>
и <vnet-subnet-name>
ниже:
$storageAccountResourceGroupName = "<storage-account-resource-group-name>"
$storageAccountName = "<storage-account-name>"
$virtualNetworkResourceGroupName = "<vnet-resource-group-name>"
$virtualNetworkName = "<vnet-name>"
$subnetName = "<vnet-subnet-name>"
# Get storage account reference, and throw error if it doesn't exist
$storageAccount = Get-AzStorageAccount `
-ResourceGroupName $storageAccountResourceGroupName `
-Name $storageAccountName `
-ErrorAction SilentlyContinue
if ($null -eq $storageAccount) {
$errorMessage = "Storage account $storageAccountName not found "
$errorMessage += "in resource group $storageAccountResourceGroupName."
Write-Error -Message $errorMessage -ErrorAction Stop
}
# Get virtual network reference, and throw error if it doesn't exist
$virtualNetwork = Get-AzVirtualNetwork `
-ResourceGroupName $virtualNetworkResourceGroupName `
-Name $virtualNetworkName `
-ErrorAction SilentlyContinue
if ($null -eq $virtualNetwork) {
$errorMessage = "Virtual network $virtualNetworkName not found "
$errorMessage += "in resource group $virtualNetworkResourceGroupName."
Write-Error -Message $errorMessage -ErrorAction Stop
}
# Get reference to virtual network subnet, and throw error if it doesn't exist
$subnet = $virtualNetwork | `
Select-Object -ExpandProperty Subnets | `
Where-Object { $_.Name -eq $subnetName }
if ($null -eq $subnet) {
Write-Error `
-Message "Subnet $subnetName not found in virtual network $virtualNetworkName." `
-ErrorAction Stop
}
Чтобы создать частную конечную точку, необходимо установить подключение службы частной ссылки к учетной записи хранения. Подключение частной ссылки используется в качестве входных данных для создания частной конечной точки.
# Disable private endpoint network policies
$subnet.PrivateEndpointNetworkPolicies = "Disabled"
$virtualNetwork = $virtualNetwork | `
Set-AzVirtualNetwork -ErrorAction Stop
# Create a private link service connection to the storage account.
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
-Name "$storageAccountName-Connection" `
-PrivateLinkServiceId $storageAccount.Id `
-GroupId "file" `
-ErrorAction Stop
# Create a new private endpoint.
$privateEndpoint = New-AzPrivateEndpoint `
-ResourceGroupName $storageAccountResourceGroupName `
-Name "$storageAccountName-PrivateEndpoint" `
-Location $virtualNetwork.Location `
-Subnet $subnet `
-PrivateLinkServiceConnection $privateEndpointConnection `
-ErrorAction Stop
Создание частной зоны DNS в Azure позволяет оригинальному имени учетной записи хранения, такому как storageaccount.file.core.windows.net
, разрешаться в частный IP-адрес внутри виртуальной сети. Хотя это необязательно для создания частной конечной точки, это явно необходимо для монтирования общего ресурса Azure с использованием учётной записи пользователя AD или при доступе через REST API.
# Get the desired storage account suffix (core.windows.net for public cloud).
# This is done like this so this script will seamlessly work for non-public Azure.
$storageAccountSuffix = Get-AzContext | `
Select-Object -ExpandProperty Environment | `
Select-Object -ExpandProperty StorageEndpointSuffix
# For public cloud, this will generate the following DNS suffix:
# privatelink.file.core.windows.net.
$dnsZoneName = "privatelink.file.$storageAccountSuffix"
# Find a DNS zone matching desired name attached to this virtual network.
$dnsZone = Get-AzPrivateDnsZone | `
Where-Object { $_.Name -eq $dnsZoneName } | `
Where-Object {
$privateDnsLink = Get-AzPrivateDnsVirtualNetworkLink `
-ResourceGroupName $_.ResourceGroupName `
-ZoneName $_.Name `
-ErrorAction SilentlyContinue
$privateDnsLink.VirtualNetworkId -eq $virtualNetwork.Id
}
if ($null -eq $dnsZone) {
# No matching DNS zone attached to virtual network, so create new one.
$dnsZone = New-AzPrivateDnsZone `
-ResourceGroupName $virtualNetworkResourceGroupName `
-Name $dnsZoneName `
-ErrorAction Stop
$privateDnsLink = New-AzPrivateDnsVirtualNetworkLink `
-ResourceGroupName $virtualNetworkResourceGroupName `
-ZoneName $dnsZoneName `
-Name "$virtualNetworkName-DnsLink" `
-VirtualNetworkId $virtualNetwork.Id `
-ErrorAction Stop
}
Теперь, когда у вас есть ссылка на частную зону DNS, нужно создать запись типа A для учетной записи хранения.
$privateEndpointIP = $privateEndpoint | `
Select-Object -ExpandProperty NetworkInterfaces | `
Select-Object @{
Name = "NetworkInterfaces";
Expression = { Get-AzNetworkInterface -ResourceId $_.Id }
} | `
Select-Object -ExpandProperty NetworkInterfaces | `
Select-Object -ExpandProperty IpConfigurations | `
Select-Object -ExpandProperty PrivateIpAddress
$privateDnsRecordConfig = New-AzPrivateDnsRecordConfig `
-IPv4Address $privateEndpointIP
New-AzPrivateDnsRecordSet `
-ResourceGroupName $virtualNetworkResourceGroupName `
-Name $storageAccountName `
-RecordType A `
-ZoneName $dnsZoneName `
-Ttl 600 `
-PrivateDnsRecords $privateDnsRecordConfig `
-ErrorAction Stop | `
Out-Null
Если у вас есть виртуальная машина в виртуальной сети или вы настроили перенаправление DNS, как описано в разделе "Настройка перенаправления DNS для Файлы Azure", можно проверить правильность настройки частной конечной точки с помощью следующих команд:
$storageAccountHostName = [System.Uri]::new($storageAccount.PrimaryEndpoints.file) | `
Select-Object -ExpandProperty Host
Resolve-DnsName -Name $storageAccountHostName
Если все работает успешно, вы увидите следующие выходные данные, где 192.168.0.5
находится частный IP-адрес частной конечной точки в виртуальной сети:
Name Type TTL Section NameHost
---- ---- --- ------- --------
storageaccount.file.core.windows CNAME 60 Answer storageaccount.privatelink.file.core.windows.net
.net
Name : storageaccount.privatelink.file.core.windows.net
QueryType : A
TTL : 600
Section : Answer
IP4Address : 192.168.0.5
Чтобы создать частную конечную точку для учетной записи хранения, сначала нужно получить ссылку на учетную запись хранения и подсеть виртуальной сети, в которую вы хотите добавить частную конечную точку. Замените <storage-account-resource-group-name>
, <storage-account-name>
, <vnet-resource-group-name>
, <vnet-name>
и <vnet-subnet-name>
ниже:
storageAccountResourceGroupName="<storage-account-resource-group-name>"
storageAccountName="<storage-account-name>"
virtualNetworkResourceGroupName="<vnet-resource-group-name>"
virtualNetworkName="<vnet-name>"
subnetName="<vnet-subnet-name>"
# Get storage account ID
storageAccount=$(az storage account show \
--resource-group $storageAccountResourceGroupName \
--name $storageAccountName \
--query "id" | \
tr -d '"')
# Get virtual network ID
virtualNetwork=$(az network vnet show \
--resource-group $virtualNetworkResourceGroupName \
--name $virtualNetworkName \
--query "id" | \
tr -d '"')
# Get subnet ID
subnet=$(az network vnet subnet show \
--resource-group $virtualNetworkResourceGroupName \
--vnet-name $virtualNetworkName \
--name $subnetName \
--query "id" | \
tr -d '"')
Чтобы создать частную конечную точку, сначала необходимо убедиться, что сетевая политика частной конечной точки для подсети отключена. Затем создайте частную конечную точку с помощью команды az network private-endpoint create
.
# Disable private endpoint network policies
az network vnet subnet update \
--ids $subnet \
--disable-private-endpoint-network-policies \
--output none
# Get virtual network location
region=$(az network vnet show \
--ids $virtualNetwork \
--query "location" | \
tr -d '"')
# Create a private endpoint
privateEndpoint=$(az network private-endpoint create \
--resource-group $storageAccountResourceGroupName \
--name "$storageAccountName-PrivateEndpoint" \
--location $region \
--subnet $subnet \
--private-connection-resource-id $storageAccount \
--group-id "file" \
--connection-name "$storageAccountName-Connection" \
--query "id" | \
tr -d '"')
Создание частной зоны DNS в Azure позволяет оригинальному имени учетной записи хранения, например, storageaccount.file.core.windows.net
, разрешаться в частный IP-адрес внутри виртуальной сети. Хотя для создания частной конечной точки это является необязательным, но явно требуется при подключении к общей папке Azure с использованием субъекта-пользователя AD или при доступе через REST API.
# Get the desired storage account suffix (core.windows.net for public cloud).
# This is done like this so this script will seamlessly work for non-public Azure.
storageAccountSuffix=$(az cloud show \
--query "suffixes.storageEndpoint" | \
tr -d '"')
# For public cloud, this will generate the following DNS suffix:
# privatelink.file.core.windows.net.
dnsZoneName="privatelink.file.$storageAccountSuffix"
# Find a DNS zone matching desired name attached to this virtual network.
possibleDnsZones=""
possibleDnsZones=$(az network private-dns zone list \
--query "[?name == '$dnsZoneName'].id" \
--output tsv)
dnsZone=""
possibleDnsZone=""
for possibleDnsZone in $possibleDnsZones
do
possibleResourceGroupName=$(az resource show \
--ids $possibleDnsZone \
--query "resourceGroup" | \
tr -d '"')
link=$(az network private-dns link vnet list \
--resource-group $possibleResourceGroupName \
--zone-name $dnsZoneName \
--query "[?virtualNetwork.id == '$virtualNetwork'].id" \
--output tsv)
if [ -z $link ]
then
echo "1" > /dev/null
else
dnsZoneResourceGroup=$possibleResourceGroupName
dnsZone=$possibleDnsZone
break
fi
done
if [ -z $dnsZone ]
then
# No matching DNS zone attached to virtual network, so create a new one
dnsZone=$(az network private-dns zone create \
--resource-group $virtualNetworkResourceGroupName \
--name $dnsZoneName \
--query "id" | \
tr -d '"')
az network private-dns link vnet create \
--resource-group $virtualNetworkResourceGroupName \
--zone-name $dnsZoneName \
--name "$virtualNetworkName-DnsLink" \
--virtual-network $virtualNetwork \
--registration-enabled false \
--output none
dnsZoneResourceGroup=$virtualNetworkResourceGroupName
fi
Теперь, когда у вас есть ссылка на частную зону DNS, нужно создать запись типа A для учетной записи хранения.
privateEndpointNIC=$(az network private-endpoint show \
--ids $privateEndpoint \
--query "networkInterfaces[0].id" | \
tr -d '"')
privateEndpointIP=$(az network nic show \
--ids $privateEndpointNIC \
--query "ipConfigurations[0].privateIPAddress" | \
tr -d '"')
az network private-dns record-set a create \
--resource-group $dnsZoneResourceGroup \
--zone-name $dnsZoneName \
--name $storageAccountName \
--output none
az network private-dns record-set a add-record \
--resource-group $dnsZoneResourceGroup \
--zone-name $dnsZoneName \
--record-set-name $storageAccountName \
--ipv4-address $privateEndpointIP \
--output none
Если у вас есть виртуальная машина в виртуальной сети или вы настроили перенаправление DNS, как описано в разделе "Настройка перенаправления DNS для Файлы Azure", можно проверить правильность настройки частной конечной точки с помощью следующих команд:
httpEndpoint=$(az storage account show \
--resource-group $storageAccountResourceGroupName \
--name $storageAccountName \
--query "primaryEndpoints.file" | \
tr -d '"')
hostName=$(echo $httpEndpoint | cut -c7-$(expr length $httpEndpoint) | tr -d "/")
nslookup $hostName
Если все работает успешно, вы увидите следующие выходные данные, где 192.168.0.5
находится частный IP-адрес частной конечной точки в виртуальной сети:
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
storageaccount.file.core.windows.net canonical name = storageaccount.privatelink.file.core.windows.net.
Name: storageaccount.privatelink.file.core.windows.net
Address: 192.168.0.5
Создание частной конечной точки службы синхронизации хранилища
Перейдите в Центр приватных каналов, введя Private Link (Приватный канал) в поле поиска, которое находится вверху на портале Azure. В списке содержимого Центра приватных каналов выберите Частные конечные точки, а затем нажмите кнопку + Добавить, чтобы создать новую частную конечную точку.
В результате мастер будет содержать несколько страниц для заполнения.
В колонке Основные сведения выберите нужную группу ресурсов, имя и регион для частной конечной точки. Они могут быть любыми, но не должны каким-либо образом соответствовать службе синхронизации хранилища, хотя вы должны создать частную конечную точку в том же регионе, что и виртуальная сеть, в которой вы хотите ее создать.
В окне Ресурс выберите радиокнопку Подключиться к ресурсу Azure в моей директории. В разделе Тип ресурса выберите Microsoft.StorageSync/storageSyncServices в качестве типа.
В колонке Конфигурация можно выбрать определенную виртуальную сеть и подсеть, в которую вы хотите добавить частную конечную точку. Выберите ту же виртуальную сеть, которую использовали выше для учетной записи хранения. В колонке "Конфигурация" также содержатся сведения для создания или обновления частной зоны DNS.
Нажмите кнопку Проверить и создать, чтобы создать частную конечную точку.
Вы можете проверить правильность настройки частной конечной точки, выполнив следующие команды PowerShell.
$privateEndpointResourceGroupName = "<your-private-endpoint-resource-group>"
$privateEndpointName = "<your-private-endpoint-name>"
Get-AzPrivateEndpoint `
-ResourceGroupName $privateEndpointResourceGroupName `
-Name $privateEndpointName `
-ErrorAction Stop | `
Select-Object -ExpandProperty NetworkInterfaces | `
Select-Object -ExpandProperty Id | `
ForEach-Object { Get-AzNetworkInterface -ResourceId $_ } | `
Select-Object -ExpandProperty IpConfigurations | `
Select-Object -ExpandProperty PrivateLinkConnectionProperties | `
Select-Object -ExpandProperty Fqdns | `
ForEach-Object { Resolve-DnsName -Name $_ } | `
Format-List
Если все работает правильно, вы увидите следующие выходные данные, где 192.168.1.4
192.168.1.5
, 192.168.1.6
и 192.168.1.7
являются частными IP-адресами, назначенными частной конечной точке:
Name : mysssmanagement.westus2.afs.azure.net
Type : CNAME
TTL : 60
Section : Answer
NameHost : mysssmanagement.westus2.privatelink.afs.azure.net
Name : mysssmanagement.westus2.privatelink.afs.azure.net
QueryType : A
TTL : 60
Section : Answer
IP4Address : 192.168.1.4
Name : myssssyncp.westus2.afs.azure.net
Type : CNAME
TTL : 60
Section : Answer
NameHost : myssssyncp.westus2.privatelink.afs.azure.net
Name : myssssyncp.westus2.privatelink.afs.azure.net
QueryType : A
TTL : 60
Section : Answer
IP4Address : 192.168.1.5
Name : myssssyncs.westus2.afs.azure.net
Type : CNAME
TTL : 60
Section : Answer
NameHost : myssssyncs.westus2.privatelink.afs.azure.net
Name : myssssyncs.westus2.privatelink.afs.azure.net
QueryType : A
TTL : 60
Section : Answer
IP4Address : 192.168.1.6
Name : mysssmonitoring.westus2.afs.azure.net
Type : CNAME
TTL : 60
Section : Answer
NameHost : mysssmonitoring.westus2.privatelink.afs.azure.net
Name : mysssmonitoring.westus2.privatelink.afs.azure.net
QueryType : A
TTL : 60
Section : Answer
IP4Address : 192.168.1.7
Чтобы создать частную конечную точку для службы синхронизации хранилища, сначала необходимо получить ссылку на службу синхронизации хранилища. Не забудьте заменить <storage-sync-service-resource-group>
и <storage-sync-service>
соответствующими значениями из своей среды. Следующие команды PowerShell предполагают, что вы уже заполняли сведения о виртуальной сети.
$storageSyncServiceResourceGroupName = "<storage-sync-service-resource-group>"
$storageSyncServiceName = "<storage-sync-service>"
$storageSyncService = Get-AzStorageSyncService `
-ResourceGroupName $storageSyncServiceResourceGroupName `
-Name $storageSyncServiceName `
-ErrorAction SilentlyContinue
if ($null -eq $storageSyncService) {
$errorMessage = "Storage Sync Service $storageSyncServiceName not found "
$errorMessage += "in resource group $storageSyncServiceResourceGroupName."
Write-Error -Message $errorMessage -ErrorAction Stop
}
Чтобы создать частную конечную точку, необходимо создать подключение службы Частной ссылки к Службе синхронизации хранилища. Соединение частной ссылки является входом для создания частной конечной точки.
# Disable private endpoint network policies
$subnet.PrivateEndpointNetworkPolicies = "Disabled"
$virtualNetwork = $virtualNetwork | `
Set-AzVirtualNetwork -ErrorAction Stop
# Create a private link service connection to the storage account.
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
-Name "$storageSyncServiceName-Connection" `
-PrivateLinkServiceId $storageSyncService.ResourceId `
-GroupId "Afs" `
-ErrorAction Stop
# Create a new private endpoint.
$privateEndpoint = New-AzPrivateEndpoint `
-ResourceGroupName $storageSyncServiceResourceGroupName `
-Name "$storageSyncServiceName-PrivateEndpoint" `
-Location $virtualNetwork.Location `
-Subnet $subnet `
-PrivateLinkServiceConnection $privateEndpointConnection `
-ErrorAction Stop
Создание частной зоны DNS Azure позволяет преобразовать имена узлов для службы синхронизации хранилища, такие как mysssmanagement.westus2.afs.azure.net
, в соответствующие частные IP-адреса для корректной работы службы синхронизации хранилища в виртуальной сети. Хотя это необязательно с точки зрения создания частной конечной точки, это явно необходимо для агента Azure File Sync, чтобы получить доступ к службе синхронизации хранилища.
# Get the desired Storage Sync Service suffix (afs.azure.net for public cloud).
# This is done like this so this script will seamlessly work for non-public Azure.
$azureEnvironment = Get-AzContext | `
Select-Object -ExpandProperty Environment | `
Select-Object -ExpandProperty Name
switch($azureEnvironment) {
"AzureCloud" {
$storageSyncSuffix = "afs.azure.net"
}
"AzureUSGovernment" {
$storageSyncSuffix = "afs.azure.us"
}
"AzureChinaCloud" {
$storageSyncSuffix = "afs.azure.cn"
}
default {
Write-Error
-Message "The Azure environment $_ is not currently supported by Azure File Sync." `
-ErrorAction Stop
}
}
# For public cloud, this will generate the following DNS suffix:
# privatelink.afs.azure.net
$dnsZoneName = "privatelink.$storageSyncSuffix"
# Find a DNS zone matching desired name attached to this virtual network.
$dnsZone = Get-AzPrivateDnsZone | `
Where-Object { $_.Name -eq $dnsZoneName } | `
Where-Object {
$privateDnsLink = Get-AzPrivateDnsVirtualNetworkLink `
-ResourceGroupName $_.ResourceGroupName `
-ZoneName $_.Name `
-ErrorAction SilentlyContinue
$privateDnsLink.VirtualNetworkId -eq $virtualNetwork.Id
}
if ($null -eq $dnsZone) {
# No matching DNS zone attached to virtual network, so create new one.
$dnsZone = New-AzPrivateDnsZone `
-ResourceGroupName $virtualNetworkResourceGroupName `
-Name $dnsZoneName `
-ErrorAction Stop
$privateDnsLink = New-AzPrivateDnsVirtualNetworkLink `
-ResourceGroupName $virtualNetworkResourceGroupName `
-ZoneName $dnsZoneName `
-Name "$virtualNetworkName-DnsLink" `
-VirtualNetworkId $virtualNetwork.Id `
-ErrorAction Stop
}
Теперь, когда у вас есть ссылка на частную зону DNS, необходимо создать запись A для службы синхронизации хранилища.
$privateEndpointIpFqdnMappings = $privateEndpoint | `
Select-Object -ExpandProperty NetworkInterfaces | `
Select-Object -ExpandProperty Id | `
ForEach-Object { Get-AzNetworkInterface -ResourceId $_ } | `
Select-Object -ExpandProperty IpConfigurations | `
ForEach-Object {
$privateIpAddress = $_.PrivateIpAddress;
$_ | `
Select-Object -ExpandProperty PrivateLinkConnectionProperties | `
Select-Object -ExpandProperty Fqdns | `
Select-Object `
@{
Name = "PrivateIpAddress";
Expression = { $privateIpAddress }
}, `
@{
Name = "FQDN";
Expression = { $_ }
}
}
foreach($ipFqdn in $privateEndpointIpFqdnMappings) {
$privateDnsRecordConfig = New-AzPrivateDnsRecordConfig `
-IPv4Address $ipFqdn.PrivateIpAddress
$dnsEntry = $ipFqdn.FQDN.Substring(0,
$ipFqdn.FQDN.IndexOf(".", $ipFqdn.FQDN.IndexOf(".") + 1))
New-AzPrivateDnsRecordSet `
-ResourceGroupName $virtualNetworkResourceGroupName `
-Name $dnsEntry `
-RecordType A `
-ZoneName $dnsZoneName `
-Ttl 600 `
-PrivateDnsRecords $privateDnsRecordConfig `
-ErrorAction Stop | `
Out-Null
}
Чтобы создать частную конечную точку для службы синхронизации хранилища, сначала необходимо получить ссылку на службу синхронизации хранилища. Не забудьте заменить <storage-sync-service-resource-group>
и <storage-sync-service>
соответствующими значениями из своей среды. В следующих командах CLI предполагается, что вы уже заполняли сведения о виртуальной сети.
storageSyncServiceResourceGroupName="<storage-sync-service-resource-group>"
storageSyncServiceName="<storage-sync-service>"
storageSyncService=$(az resource show \
--resource-group $storageSyncServiceResourceGroupName \
--name $storageSyncServiceName \
--resource-type "Microsoft.StorageSync/storageSyncServices" \
--query "id" | \
tr -d '"')
storageSyncServiceRegion=$(az resource show \
--resource-group $storageSyncServiceResourceGroupName \
--name $storageSyncServiceName \
--resource-type "Microsoft.StorageSync/storageSyncServices" \
--query "location" | \
tr -d '"')
Чтобы создать частную конечную точку, необходимо сначала убедиться, что для подсети отключена сетевая политика для частной конечной точки. Затем создайте частную конечную точку с помощью команды az network private-endpoint create
.
# Disable private endpoint network policies
az network vnet subnet update \
--ids $subnet \
--disable-private-endpoint-network-policies \
--output none
# Get virtual network location
region=$(az network vnet show \
--ids $virtualNetwork \
--query "location" | \
tr -d '"')
# Create a private endpoint
privateEndpoint=$(az network private-endpoint create \
--resource-group $storageSyncServiceResourceGroupName \
--name "$storageSyncServiceName-PrivateEndpoint" \
--location $region \
--subnet $subnet \
--private-connection-resource-id $storageSyncService \
--group-id "Afs" \
--connection-name "$storageSyncServiceName-Connection" \
--query "id" | \
tr -d '"')
Создание частной зоны DNS Azure позволяет преобразовывать имена узлов для службы синхронизации хранилища, такие как mysssmanagement.westus2.afs.azure.net
, в правильные частные IP-адреса внутри виртуальной сети. Хотя это необязательно с точки зрения создания частной конечной точки, это явно необходимо для агента синхронизации файлов Azure для доступа к Службе синхронизации хранилища.
# Get the desired storage account suffix (afs.azure.net for public cloud).
# This is done like this so this script will seamlessly work for non-public Azure.
azureEnvironment=$(az cloud show \
--query "name" |
tr -d '"')
storageSyncSuffix=""
if [ $azureEnvironment == "AzureCloud" ]
then
storageSyncSuffix="afs.azure.net"
elif [ $azureEnvironment == "AzureUSGovernment" ]
then
storageSyncSuffix="afs.azure.us"
else
echo "Unsupported Azure environment $azureEnvironment."
fi
# For public cloud, this will generate the following DNS suffix:
# privatelinke.afs.azure.net.
dnsZoneName="privatelink.$storageSyncSuffix"
# Find a DNS zone matching desired name attached to this virtual network.
possibleDnsZones=""
possibleDnsZones=$(az network private-dns zone list \
--query "[?name == '$dnsZoneName'].id" \
--output tsv)
dnsZone=""
possibleDnsZone=""
for possibleDnsZone in $possibleDnsZones
do
possibleResourceGroupName=$(az resource show \
--ids $possibleDnsZone \
--query "resourceGroup" | \
tr -d '"')
link=$(az network private-dns link vnet list \
--resource-group $possibleResourceGroupName \
--zone-name $dnsZoneName \
--query "[?virtualNetwork.id == '$virtualNetwork'].id" \
--output tsv)
if [ -z $link ]
then
echo "1" > /dev/null
else
dnsZoneResourceGroup=$possibleResourceGroupName
dnsZone=$possibleDnsZone
break
fi
done
if [ -z $dnsZone ]
then
# No matching DNS zone attached to virtual network, so create a new one
dnsZone=$(az network private-dns zone create \
--resource-group $virtualNetworkResourceGroupName \
--name $dnsZoneName \
--query "id" | \
tr -d '"')
az network private-dns link vnet create \
--resource-group $virtualNetworkResourceGroupName \
--zone-name $dnsZoneName \
--name "$virtualNetworkName-DnsLink" \
--virtual-network $virtualNetwork \
--registration-enabled false \
--output none
dnsZoneResourceGroup=$virtualNetworkResourceGroupName
fi
Теперь, когда у вас есть ссылка на частную зону DNS, необходимо создать запись A для службы синхронизации хранилища.
privateEndpointNIC=$(az network private-endpoint show \
--ids $privateEndpoint \
--query "networkInterfaces[0].id" | \
tr -d '"')
privateIpAddresses=$(az network nic show \
--ids $privateEndpointNIC \
--query "ipConfigurations[].privateIpAddress" \
--output tsv)
hostNames=$(az network nic show \
--ids $privateEndpointNIC \
--query "ipConfigurations[].privateLinkConnectionProperties.fqdns[]" \
--output tsv)
i=0
for privateIpAddress in $privateIpAddresses
do
j=0
targetHostName=""
for hostName in $hostNames
do
if [ $i == $j ]
then
targetHostName=$hostName
break
fi
j=$(expr $j + 1)
done
endpointName=$(echo $targetHostName | \
cut -c1-$(expr $(expr index $targetHostName ".") - 1))
az network private-dns record-set a create \
--resource-group $dnsZoneResourceGroup \
--zone-name $dnsZoneName \
--name "$endpointName.$storageSyncServiceRegion" \
--output none
az network private-dns record-set a add-record \
--resource-group $dnsZoneResourceGroup \
--zone-name $dnsZoneName \
--record-set-name "$endpointName.$storageSyncServiceRegion" \
--ipv4-address $privateIpAddress \
--output none
i=$(expr $i + 1)
done
Ограничение доступа к общедоступным конечным точкам
Вы можете ограничить доступ к общедоступным конечным точкам как учетной записи хранения, так и службы синхронизации хранилища. Ограничение доступа к общедоступной конечной точке обеспечивает дополнительную безопасность, гарантируя, что сетевые пакеты принимаются только из утвержденных расположений.
Ограничение доступа к общедоступной конечной точке учетной записи хранения
Вы можете ограничить доступ к общедоступной конечной точке, настроив параметры брандмауэра учетной записи хранения. Как правило, большинство политик брандмауэра учетной записи хранения разрешают сетевой доступ из одной или нескольких виртуальных сетей. Существует два подхода к ограничению доступа к учетной записи хранения для виртуальной сети.
-
Создайте одну или несколько частных конечных точек для учетной записи хранения и отключите доступ к общедоступной конечной точке. Это будет гарантировать, что доступ к общим папкам Azure в учетной записи хранения получают только те, кто подключается из нужных виртуальных сетей.
- Ограничьте доступ к общедоступной конечной точке одной или несколькими виртуальными сетями. Это достигается за счет возможности виртуальной сети под названием конечная точка службы. При ограничении трафика на учетную запись хранения через конечную точку службы вы по-прежнему обращаетесь к учетной записи хранения через общедоступный IP-адрес.
Примечание.
Чтобы разрешить службам Azure в списке доверенных служб доступ к этому исключению учетной записи хранения, необходимо выбрать учетную запись хранения, чтобы разрешить доверенным первым лицам службы Майкрософт, например Синхронизация файлов Azure для доступа к учетной записи хранения. Дополнительные сведения см. в статье "Предоставление доступа к доверенным службам Azure".
Предоставление доступа к доверенным службам Azure и отключение доступа к общедоступной конечной точке учетной записи хранения
Если доступ к общедоступной конечной точке отключен, к учетной записи хранения можно обращаться только через частные конечные точки. Даже допустимые запросы к общедоступной конечной точке учетной записи хранения будут отклоняться.
Перейдите к учетной записи хранения, для которой вы хотите запретить доступ к общедоступной конечной точке. В таблице содержимого учетной записи хранения выберите Сетевые настройки.
В верхней части страницы выберите переключатель "Включено" из выбранных виртуальных сетей и IP-адресов. Это действие отобразит ряд скрытых параметров для управления ограничениями общедоступной конечной точки. Выберите «Разрешить службам Azure в списке доверенных служб доступ к этой учетной записи хранения», чтобы разрешить доверенным первичным службам Microsoft, таким как Синхронизация файлов Azure, доступ к этой учетной записи хранения.
Следующая команда PowerShell блокирует весь трафик к общедоступной конечной точке учетной записи хранения. Обратите внимание, что в этой команде параметр -Bypass
имеет значение AzureServices
. Это значение разрешает доступ к учетной записи хранения через общедоступную конечную точку для доверенных служб корпорации Майкрософт, таких как Синхронизация файлов Azure.
# This assumes $storageAccount is still defined from the beginning of this of this guide.
$storageAccount | Update-AzStorageAccountNetworkRuleSet `
-DefaultAction Deny `
-Bypass AzureServices `
-WarningAction SilentlyContinue `
-ErrorAction Stop | `
Out-Null
Следующая команда CLI блокирует весь трафик к общедоступной конечной точке учетной записи хранения. Обратите внимание, что в этой команде параметр -bypass
имеет значение AzureServices
. Это значение разрешает доступ к учетной записи хранения через общедоступную конечную точку для доверенных служб корпорации Майкрософт, таких как Синхронизация файлов Azure.
# This assumes $storageAccountResourceGroupName and $storageAccountName
# are still defined from the beginning of this guide.
az storage account update \
--resource-group $storageAccountResourceGroupName \
--name $storageAccountName \
--bypass "AzureServices" \
--default-action "Deny" \
--output none
Предоставление доступа к доверенным службам Azure и ограничение доступа к общедоступной конечной точке учетной записи хранения определенным виртуальным сетям
При ограничении учетной записи хранения определенным виртуальным сетям вы разрешаете запросы к общедоступной конечной точке из указанных виртуальных сетей. Это достигается за счет возможности виртуальной сети под названием конечная точка службы. Ее можно использовать с частными конечными точками или без них.
Перейдите к учетной записи хранения, для которой вы хотите разрешить доступ к общедоступной конечной точке только из нескольких виртуальных сетей. В содержании для учетной записи хранения выберите Сеть.
В верхней части страницы выберите переключатель "Включено" из выбранных виртуальных сетей и IP-адресов. Это действие отобразит ряд скрытых параметров для управления ограничениями общедоступной конечной точки. Нажмите кнопку +Добавить существующую виртуальную сеть, чтобы выбрать определенную виртуальную сеть , доступ к ней через общедоступную конечную точку. Выберите виртуальную сеть и подсеть для этой виртуальной сети, а затем нажмите кнопку "Включить".
Выберите «Разрешить службам Azure в списке доверенных служб доступ к этой учетной записи хранения», чтобы разрешить доверенным службам компании Microsoft, таким как Синхронизация файлов Azure, доступ к этой учетной записи хранения.
Чтобы разрешить доступ к общедоступной конечной точке учетной записи хранения только из определенных виртуальных сетей через конечные точки службы, сначала необходимо собрать информацию об учетной записи хранения и виртуальной сети. Для сбора этой информации заполните параметры <storage-account-resource-group>
, <storage-account-name>
, <vnet-resource-group-name>
, <vnet-name>
и <subnet-name>
.
$storageAccountResourceGroupName = "<storage-account-resource-group>"
$storageAccountName = "<storage-account-name>"
$restrictToVirtualNetworkResourceGroupName = "<vnet-resource-group-name>"
$restrictToVirtualNetworkName = "<vnet-name>"
$subnetName = "<subnet-name>"
$storageAccount = Get-AzStorageAccount `
-ResourceGroupName $storageAccountResourceGroupName `
-Name $storageAccountName `
-ErrorAction Stop
$virtualNetwork = Get-AzVirtualNetwork `
-ResourceGroupName $restrictToVirtualNetworkResourceGroupName `
-Name $restrictToVirtualNetworkName `
-ErrorAction Stop
$subnet = $virtualNetwork | `
Select-Object -ExpandProperty Subnets | `
Where-Object { $_.Name -eq $subnetName }
if ($null -eq $subnet) {
Write-Error `
-Message "Subnet $subnetName not found in virtual network $restrictToVirtualNetworkName." `
-ErrorAction Stop
}
Чтобы трафик из виртуальной сети мог быть пропущен через сетевую структуру Azure к общедоступной конечной точке учетной записи хранения, в подсети этой виртуальной сети должна быть открыта конечная точка службы Microsoft.Storage
. Следующие команды PowerShell добавят Microsoft.Storage
конечную точку службы в подсеть, если она еще не существует.
$serviceEndpoints = $subnet | `
Select-Object -ExpandProperty ServiceEndpoints | `
Select-Object -ExpandProperty Service
if ($serviceEndpoints -notcontains "Microsoft.Storage") {
if ($null -eq $serviceEndpoints) {
$serviceEndpoints = @("Microsoft.Storage")
} elseif ($serviceEndpoints -is [string]) {
$serviceEndpoints = @($serviceEndpoints, "Microsoft.Storage")
} else {
$serviceEndpoints += "Microsoft.Storage"
}
$virtualNetwork = $virtualNetwork | Set-AzVirtualNetworkSubnetConfig `
-Name $subnetName `
-AddressPrefix $subnet.AddressPrefix `
-ServiceEndpoint $serviceEndpoints `
-WarningAction SilentlyContinue `
-ErrorAction Stop | `
Set-AzVirtualNetwork `
-ErrorAction Stop
}
Последним шагом для ограничения трафика к учетной записи хранения будет создание правила сети и добавление его в набор правил сети для этой учетной записи хранения.
$networkRule = $storageAccount | Add-AzStorageAccountNetworkRule `
-VirtualNetworkResourceId $subnet.Id `
-ErrorAction Stop
$storageAccount | Update-AzStorageAccountNetworkRuleSet `
-DefaultAction Deny `
-Bypass AzureServices `
-VirtualNetworkRule $networkRule `
-WarningAction SilentlyContinue `
-ErrorAction Stop | `
Out-Null
Чтобы разрешить доступ к общедоступной конечной точке учетной записи хранения только из определенных виртуальных сетей через конечные точки службы, сначала необходимо собрать информацию об учетной записи хранения и виртуальной сети. Для сбора этой информации заполните параметры <storage-account-resource-group>
, <storage-account-name>
, <vnet-resource-group-name>
, <vnet-name>
и <subnet-name>
.
storageAccountResourceGroupName="<storage-account-resource-group>"
storageAccountName="<storage-account-name>"
restrictToVirtualNetworkResourceGroupName="<vnet-resource-group-name>"
restrictToVirtualNetworkName="<vnet-name>"
subnetName="<subnet-name>"
storageAccount=$(az storage account show \
--resource-group $storageAccountResourceGroupName \
--name $storageAccountName \
--query "id" | \
tr -d '"')
virtualNetwork=$(az network vnet show \
--resource-group $restrictToVirtualNetworkResourceGroupName \
--name $restrictToVirtualNetworkName \
--query "id" | \
tr -d '"')
subnet=$(az network vnet subnet show \
--resource-group $restrictToVirtualNetworkResourceGroupName \
--vnet-name $restrictToVirtualNetworkName \
--name $subnetName \
--query "id" | \
tr -d '"')
Чтобы трафику из виртуальной сети было разрешено добраться до общедоступной конечной точки учетной записи хранения, структура сети Azure должна иметь в подсети этой виртуальной сети открытую конечную точку службы Microsoft.Storage
. Следующие команды CLI добавляют Microsoft.Storage
конечную точку службы в подсеть, если она еще не существует.
serviceEndpoints=$(az network vnet subnet show \
--resource-group $restrictToVirtualNetworkResourceGroupName \
--vnet-name $restrictToVirtualNetworkName \
--name $subnetName \
--query "serviceEndpoints[].service" \
--output tsv)
foundStorageServiceEndpoint=false
for serviceEndpoint in $serviceEndpoints
do
if [ $serviceEndpoint = "Microsoft.Storage" ]
then
foundStorageServiceEndpoint=true
fi
done
if [ $foundStorageServiceEndpoint = false ]
then
serviceEndpointList=""
for serviceEndpoint in $serviceEndpoints
do
serviceEndpointList+=$serviceEndpoint
serviceEndpointList+=" "
done
serviceEndpointList+="Microsoft.Storage"
az network vnet subnet update \
--ids $subnet \
--service-endpoints $serviceEndpointList \
--output none
fi
Последним шагом для ограничения трафика к учетной записи хранения будет создание правила сети и добавление его в набор правил сети для этой учетной записи хранения.
az storage account network-rule add \
--resource-group $storageAccountResourceGroupName \
--account-name $storageAccountName \
--subnet $subnet \
--output none
az storage account update \
--resource-group $storageAccountResourceGroupName \
--name $storageAccountName \
--bypass "AzureServices" \
--default-action "Deny" \
--output none
Отключение доступа к общедоступной конечной точке службы синхронизации хранилища
Синхронизация файлов Azure позволяет ограничить доступ только к определенным виртуальным сетям через частные конечные точки; Синхронизация файлов Azure не поддерживает конечные точки службы для ограничения доступа к общедоступной конечной точке определенным виртуальным сетям. Это означает, что два состояния общедоступной конечной точки службы синхронизации хранилища включены и отключены.
Внимание
Перед отключением доступа к общедоступной конечной точке необходимо создать частную конечную точку. Если общедоступная конечная точка отключена и не настроена частная конечная точка, синхронизация не может работать.
Чтобы отключить доступ к общедоступной конечной точке службы синхронизации хранилища, выполните следующие действия.
- Войдите на портал Azure.
- Перейдите в службу синхронизации хранилища и выберите "Параметры сети" в области навигации>слева.
- В параметре «Разрешить доступ из» выберите только частные конечные точки.
- Выберите частную конечную точку из списка подключений частной конечной точки.
Чтобы отключить доступ к общедоступной конечной точке службы синхронизации хранилища, задайте incomingTrafficPolicy
для свойства службы синхронизации хранилища значение AllowVirtualNetworksOnly
. Если вы хотите включить доступ к общедоступной конечной точке службы синхронизации хранилища, вместо этого задайте incomingTrafficPolicy
как AllowAllTraffic
. Не забудьте заменить <storage-sync-service-resource-group>
и <storage-sync-service>
с собственными значениями.
$storageSyncServiceResourceGroupName = "<storage-sync-service-resource-group>"
$storageSyncServiceName = "<storage-sync-service>"
Set-AzStorageSyncService `
-ResourceGroupName $storageSyncServiceResourceGroupName `
-Name $storageSyncServiceName `
-IncomingTrafficPolicy AllowVirtualNetworksOnly
Azure CLI не поддерживает настройку incomingTrafficPolicy
свойства в службе синхронизации хранилища. Чтобы получить инструкции о том, как отключить общедоступную конечную точку службы синхронизации хранилища, откройте вкладку Azure PowerShell.
Политика Azure
Политика Azure помогает применять стандарты организации и оценивать соблюдение этих стандартов в нужном масштабе. Файлы Azure и Синхронизация файлов Azure предоставляют несколько полезных сетевых политик аудита и исправления, которые помогают отслеживать и автоматизировать развертывание.
Политики выполняют аудит среды и предупреждают пользователя, если поведение учетных записей хранения или служб синхронизации хранилища отклоняется от заданного. Например, если общедоступная конечная точка включена, несмотря на то что в вашей политике было указано отключить общедоступные конечные точки. Изменение и развертывание политик позволяют сделать шаг вперёд и проактивно изменить ресурс (например, службы синхронизации хранилища) или развернуть ресурсы (например, частные конечные точки) для приведения в соответствие с политиками.
Для Файлов Azure и Синхронизации файлов Azure доступны следующие предварительно определенные политики:
Действие |
Сервис |
Условие |
Имя политики |
Аудит |
Файлы Azure |
Общедоступная конечная точка учетной записи хранения включена. Дополнительные сведения см. в статье "Предоставление доступа к доверенным службам Azure" и отключение доступа к общедоступной конечной точке учетной записи хранения. |
Учетные записи хранения должны ограничивать доступ к сети. |
Аудит |
Служба синхронизации файлов Azure |
Общедоступная конечная точка службы синхронизации хранилища включена. Дополнительные сведения см. в разделе Отключение доступа к общедоступной конечной точке службы синхронизации хранилища. |
Доступ к общедоступной сети для Синхронизации файлов Azure должен быть отключен |
Аудит |
Файлы Azure |
Для аккаунта хранения требуется как минимум одна частная конечная точка. Дополнительные сведения см. в разделе Создание частной конечной точки для учетной записи хранения. |
Аккаунт хранения должен использовать приватное подключение |
Аудит |
Служба синхронизации файлов Azure |
Службе синхронизации хранилища требуется по крайней мере одна частная конечная точка. Дополнительные сведения см. в разделе Создание частной конечной точки службы синхронизации хранилища. |
Синхронизация файлов Azure должна использовать приватный канал |
Изменить |
Служба синхронизации файлов Azure |
Отключает общедоступную конечную точку службы синхронизации хранилища. |
Настроить Azure File Sync для отключения общедоступного сетевого доступа |
Развернуть |
Служба синхронизации файлов Azure |
Разверните частную конечную точку для службы синхронизации хранилища. |
Настройка Синхронизации файлов Azure с частными конечными точками |
Развернуть |
Служба синхронизации файлов Azure |
Разверните запись A в зоне DNS privatelink.afs.azure.net. |
Настройка использования частных зон DNS для Синхронизации файлов Azure |
Установите политику развертывания для частной конечной точки
Чтобы настроить политику развертывания частной конечной точки, перейдите на портал Azure и выполните поиск по запросу Политика. Центр политики Azure должен быть первым результатом. Перейдите в раздел Разработка>Определения в оглавлении Центра политик. В отобразившейся области Определения содержатся предварительно определенные политики для всех служб Azure. Чтобы найти конкретную политику, выберите категорию Хранилище в фильтре категорий или выполните поиск по запросу Настройка Синхронизации файлов Azure с помощью частных конечных точек. Нажмите значок ... и выберите Назначить, чтобы создать новую политику из определения.
В колонке Основные сведения мастера Назначить политику можно задать список исключений для областей, ресурсов или групп ресурсов, а также дать политике понятное имя, отличающее ее. Чтобы политика работала, не обязательно вносить эти изменения. Но при необходимости их можно ввести. Нажмите кнопку Далее, чтобы перейти на страницу Параметры.
В колонке Параметры щелкните значок ... рядом с раскрывающимся списком privateEndpointSubnetId, чтобы выбрать виртуальную сеть и подсеть, в которых следует развернуты частные конечные точки для ресурсов службы синхронизации хранилища. Для загрузки доступных виртуальных сетей в вашей подписке мастеру может потребоваться несколько секунд. Выберите подходящую виртуальную сеть или подсеть для своей среды и нажмите кнопку Выбрать. Нажмите кнопку Далее, чтобы перейти в колонку Исправление.
Чтобы развернуть частную конечную точку при обнаружении службы синхронизации хранилища без частной конечной точки, необходимо выбрать Создать задачу исправления на странице Исправлений. Наконец, выберите Проверка и создание, чтобы проверить назначение политики, и нажмите кнопку Создать, чтобы создать его.
Результирующее назначение политики будет выполняться периодически и может не выполняться сразу после создания.
См. также