Разрешение доступа к пространствам имен Центров событий Azure через частные конечные точки

Приватный канал Azure обеспечивает доступ к службам Azure (например, к Центрам событий Azure, службе хранилища Azure и Azure Cosmos DB), а также к размещенным в Azure службам клиентов или партнеров через частную конечную точку виртуальной сети.

Частная конечная точка — это сетевой интерфейс, который защищенно и надежно подключается к службе через Приватный канал Azure. Частная конечная точка использует частный IP-адрес из виртуальной сети, по сути, перемещая службу в виртуальную сеть. Весь трафик к службе направляется через частную конечную точку, поэтому не требуются шлюзы, устройства NAT, ExpressRoute или VPN-подключения или общедоступные IP-адреса. Трафик между виртуальной сетью и службой проходит через магистральную сеть Майкрософт. Это позволяет избежать рисков общедоступного Интернета. Вы можете подключиться к экземпляру ресурса Azure, обеспечивая наивысшую степень детализации в управлении доступом.

Дополнительные сведения см. в статье Что такое Приватный канал Azure.

Важные аспекты

  • Эта функция не поддерживается на уровне "Базовый".
  • Включение частных конечных точек может препятствовать взаимодействию других служб Azure с Центрами событий. Запросы от других служб Azure, в том числе портала Azure, служб метрики и ведения журналов, блокируются. В качестве исключения можно разрешить доступ к ресурсам Центров событий из определенных доверенных служб, даже если включены частные конечные точки. Список доверенных служб см. в разделе Доверенные службы.
  • Укажите как минимум одно правило IP-адреса или правило виртуальной сети для пространства имен, разрешающее трафик только с указанных IP-адресов или подсети виртуальной сети. Если правил IP-адресов и виртуальных сетей нет, доступ к пространству имен можно получить через общедоступный Интернет (используя ключ доступа).

Добавление частной конечной точки с помощью портала Azure

Необходимые компоненты

Чтобы интегрировать пространство имен Центров событий с Приватный канал Azure, вам потребуются следующие сущности или разрешения:

  • Пространство имен Центров событий.
  • Виртуальная сеть Azure.
  • Подсеть в виртуальной сети. Можно использовать подсеть, заданную по умолчанию.
  • Разрешения владельца или участника для пространства имен и виртуальной сети.

Частная конечная точка и виртуальная сеть должны находиться в одном регионе. При выборе региона для частной конечной точки на портале он автоматически фильтрует виртуальные сети, которые находятся в этом регионе. Пространство имен может находиться в другом регионе.

Частная конечная точка использует частный IP-адрес в виртуальной сети.

Настройка закрытого доступа при создании пространства имен

При создании пространства имен можно разрешить доступ только к пространству имен только общедоступного (из всех сетей) или только приватного (только через частные конечные точки).

Если выбрать параметр приватного доступа на странице "Сеть " мастера создания пространства имен, на странице можно добавить частную конечную точку, нажав кнопку "Частная конечная точка ". Дополнительные инструкции по добавлению частной конечной точки см. в следующем разделе.

Снимок экрана: страница

Настройка закрытого доступа для существующего пространства имен

Если у вас уже есть пространство имен Центров событий, можно создать подключение Приватного канала к нему, выполнив следующие действия.

  1. Войдите на портал Azure.

  2. В строке поиска введите центры событий.

  3. Выберите из списка пространство имен, для которого нужно добавить частную конечную точку.

  4. На странице "Сеть" для доступа к общедоступной сети выберите "Отключено", если требуется доступ к пространству имен только через частные конечные точки.

  5. Чтобы разрешить доверенным службы Майкрософт обойти этот брандмауэр, выберите "Да", если вы хотите разрешить доверенным службы Майкрософт обойти этот брандмауэр.

    Снимок экрана: страница

  6. Выберите вкладку Подключения частной конечной точки.

  7. Нажмите кнопку + Частная конечная точка в верхней части страницы.

    Страница

  8. На странице Базовые выполните следующие действия.

    1. Выберите подписку Azure, в которой нужно создать частную конечную точку.

    2. Выберите группу ресурсов для ресурса частной конечной точки.

    3. Укажите имя частной конечной точки.

    4. Введите имя сетевого интерфейса.

    5. Выберите регион частной конечной точки. Частная конечная точка должна находиться в том же регионе, что и виртуальная сеть, но может находиться в другом регионе от ресурса приватного канала, к которому вы подключаетесь.

    6. Нажмите кнопку Далее: ресурс> в нижней части страницы.

      Снимок экрана: страница

  9. На странице Ресурс просмотрите параметры и нажмите Далее: виртуальная сеть.

    Снимок экрана: страница

  10. На странице Виртуальная сеть выберите подсеть в виртуальной сети, в которой требуется развернуть частную конечную точку.

    1. Выберите виртуальную сеть. В раскрывающемся списке отображаются только виртуальные сети в выбранных сейчас подписке и расположении.

    2. Выберите подсеть в выбранной виртуальной сети.

    3. Обратите внимание, что политика сети для частных конечных точек отключена. Если вы хотите включить ее, выберите Редактировать, измените параметр и нажмите Сохранить.

    4. Для параметра Конфигурация частного IP-адреса по умолчанию выбран параметр Динамическое выделение IP-адреса. Если вы хотите назначить статический IP-адрес, выберите Статическое выделение IP-адреса*.

    5. Для группы безопасности приложений выберите существующую группу безопасности приложений или создайте группу, которая будет связана с частной конечной точкой.

    6. Нажмите кнопку Далее: DNS> в нижней части страницы.

      Снимок экрана: страница

  11. На странице DNS выберите, следует ли интегрировать частную конечную точку с частной зоной DNS, а затем нажмите Далее: теги.

  12. На странице Теги создайте теги (имена и значения), которые нужно связать с ресурсом частной конечной точки. В нижней части страницы нажмите на кнопку Проверка и создание.

  13. На странице Проверка и создание проверьте все параметры и нажмите Создать, чтобы создать частную конечную точку.

    Снимок экрана: страница

  14. Убедитесь, что созданное подключение к частной конечной точке отображается в списке конечных точек. Обновите страницу и перейдите на вкладку подключения к частной конечной точке. В этом примере частная конечная точка утверждена автоматически, так как вы подключены к ресурсу Azure в каталоге и у вас есть достаточные разрешения.

    Снимок экрана: страница подключения частной конечной точки с недавно созданной частной конечной точкой.

Доверенные службы Майкрософт

При включении параметра Разрешить доверенным службам Майкрософт обходить этот параметр брандмауэра доступ к ресурсам Центров событий предоставляется следующим службам в пределах одного арендатора.

Доверенная служба Поддерживаемые сценарии использования
Сетку событий Azure Разрешает службе "Сетка событий Azure" отправку событий в концентраторы событий в пространстве имен концентраторов событий. Кроме того, необходимо выполнить следующие действия.
  • Включение назначенного системой удостоверения для раздела или домена
  • Добавьте удостоверение в роль отправителя данных концентраторов событий Azure в пространстве имен концентраторов событий.
  • Затем настроить подписку на события, использующую концентратор событий в качестве конечной точки для назначаемого системой удостоверения.

Дополнительные сведения см. в разделе Доставка событий с помощью управляемого удостоверения.

Azure Stream Analytics Позволяет заданию Azure Stream Analytic считывать данные из (входных данных) или записывать их в (выходные данные) концентраторов событий в пространстве имен концентраторов событий.

Важно! Задание Stream Analytics должно быть настроено для использования управляемого удостоверения для доступа к концентратору событий. Дополнительные сведения см. в статье "Использование управляемых удостоверений для доступа к концентратору событий" из задания Azure Stream Analytics (предварительная версия).

Центр Интернета вещей Azure Позволяет Центр Интернета вещей отправлять сообщения в центры событий в пространстве имен Центров событий. Кроме того, необходимо выполнить следующие действия.
  • Включить назначаемое системой удостоверение для центра Интернета вещей
  • Добавьте удостоверение в роль отправителя данных концентраторов событий Azure в пространстве имен концентраторов событий.
  • Затем настроить центр Интернета вещей, который использует концентратор событий в качестве пользовательской конечной точки, для использования проверки подлинности на основе удостоверений.
Управление API Azure

Служба API Management позволяет отсылать события в концентратор событий в пространстве имен концентраторов событий.

Azure Monitor (параметры диагностики и группы действий) Позволяет Azure Monitor отправлять диагностические сведения и оповещения концентраторам событий в пространстве имен Центров событий. Azure Monitor может выполнять чтение из концентратора событий, а также записывать данные в концентратор событий.
Azure Synapse Позволяет Azure Synapse подключаться к концентратору событий с помощью управляемого удостоверения рабочей области Synapse. Добавьте роль отправителя данных, получателя или владельца Центры событий Azure в удостоверение в пространстве имен Центров событий.
Azure Data Explorer Позволяет Azure Data Explorer получать события из концентратора событий с помощью управляемого удостоверения кластера. Выполните следующие действия.
  • Настройка управляемого удостоверения в Azure Data Explorer
  • Предоставьте удостоверению роль Центры событий Azure приемника данных в концентраторе событий.
 
Azure IoT Central

Позволяет IoT Central экспортировать данные в центры событий в пространстве имен Центров событий. Вам также необходимо сделать следующие шаги:

  • Включите назначаемое системой удостоверение для приложения IoT Central.
  • Добавьте удостоверение в роль отправителя данных Центров событий Azure в пространстве имен Центров событий.
  • Затем настройте для Центров событий место назначения для экспорта в приложении IoT Central, чтобы использовать проверку подлинности на основе удостоверений.
Службы Azure для работы с медицинскими данными Позволяет соединителю IoT api здравоохранения приема данных медицинского устройства из пространства имен Центров событий и сохранять данные в настроенной службе ресурсов быстрого взаимодействия с здравоохранением (FHIR®). Соединитель Интернета вещей должен быть настроен для использования управляемого удостоверения для доступа к концентратору событий. Дополнительные сведения см. в статье "Начало работы с соединителем Интернета вещей" — API здравоохранения Azure.
Azure Digital Twins Позволяет Azure Digital Twins отправлять данные в центры событий в пространстве имен Центров событий. Кроме того, необходимо выполнить следующие действия.

  • Включите назначаемое системой удостоверение для экземпляра Azure Digital Twins.
  • Добавьте удостоверение в роль отправителя данных Центров событий Azure в пространстве имен Центров событий.
  • Затем настройте конечную точку Azure Digital Twins или подключение журнала данных Azure Digital Twins, которое использует назначаемое системой удостоверение для проверки подлинности. Дополнительные сведения о настройке конечных точек и маршрутов событий в ресурсы Центров событий из Azure Digital Twins см. в статье "Маршрутизация событий Azure Digital Twins" и создание конечных точек в Azure Digital Twins.

Ниже приведены другие доверенные службы для Центры событий Azure:

  • Azure Arc
  • Azure Kubernetes
  • Машинное обучение Azure
  • Microsoft Purview

Чтобы разрешить доверенным службам доступ к пространству имен, перейдите на вкладку "Общедоступный доступ" на странице "Сеть" и выберите "Да" для разрешения доверенного службы Майкрософт, чтобы обойти этот брандмауэр?.

Добавление частной конечной точки с помощью PowerShell

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

$rgName = "<RESOURCE GROUP NAME>"
$vnetlocation = "<VIRTUAL NETWORK LOCATION>"
$vnetName = "<VIRTUAL NETWORK NAME>"
$subnetName = "<SUBNET NAME>"
$namespaceLocation = "<NAMESPACE LOCATION>"
$namespaceName = "<NAMESPACE NAME>"
$peConnectionName = "<PRIVATE ENDPOINT CONNECTION NAME>"

# create resource group
New-AzResourceGroup -Name $rgName -Location $vnetLocation 

# create virtual network
$virtualNetwork = New-AzVirtualNetwork `
                    -ResourceGroupName $rgName `
                    -Location $vnetlocation `
                    -Name $vnetName `
                    -AddressPrefix 10.0.0.0/16

# create subnet with endpoint network policy disabled
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
                    -Name $subnetName `
                    -AddressPrefix 10.0.0.0/24 `
                    -PrivateEndpointNetworkPoliciesFlag "Disabled" `
                    -VirtualNetwork $virtualNetwork

# update virtual network
$virtualNetwork | Set-AzVirtualNetwork

# create an event hubs namespace in a dedicated cluster
$namespaceResource = New-AzResource -Location $namespaceLocation `
                                    -ResourceName $namespaceName `
                                    -ResourceGroupName $rgName `
                                    -Sku @{name = "Standard"; capacity = 1} `
                                    -Properties @{clusterArmId = "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/clusters/<EVENT HUBS CLUSTER NAME>"} `
                                    -ResourceType "Microsoft.EventHub/namespaces" -ApiVersion "2018-01-01-preview"

# create private endpoint connection
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
                                -Name $peConnectionName `
                                -PrivateLinkServiceId $namespaceResource.ResourceId `
                                -GroupId "namespace"

# get subnet object that you'll use later
$virtualNetwork = Get-AzVirtualNetwork -ResourceGroupName  $rgName -Name $vnetName
$subnet = $virtualNetwork | Select -ExpandProperty subnets `
                                | Where-Object  {$_.Name -eq $subnetName}  
   
# create a private endpoint   
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $rgName  `
                                -Name $vnetName   `
                                -Location $vnetlocation `
                                -Subnet  $subnet   `
                                -PrivateLinkServiceConnection $privateEndpointConnection

(Get-AzResource -ResourceId $namespaceResource.ResourceId -ExpandProperties).Properties


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

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

$zone = New-AzPrivateDnsZone -ResourceGroupName $rgName `
                            -Name "privatelink.servicebus.windows.net" 
 
$link  = New-AzPrivateDnsVirtualNetworkLink -ResourceGroupName $rgName `
                                            -ZoneName "privatelink.servicebus.windows.net" `
                                            -Name "mylink" `
                                            -VirtualNetworkId $virtualNetwork.Id  
 
$networkInterface = Get-AzResource -ResourceId $privateEndpoint.NetworkInterfaces[0].Id -ApiVersion "2019-04-01" 
 
foreach ($ipconfig in $networkInterface.properties.ipConfigurations) { 
    foreach ($fqdn in $ipconfig.properties.privateLinkConnectionProperties.fqdns) { 
        Write-Host "$($ipconfig.properties.privateIPAddress) $($fqdn)"  
        $recordName = $fqdn.split('.',2)[0] 
        $dnsZone = $fqdn.split('.',2)[1] 
        New-AzPrivateDnsRecordSet -Name $recordName -RecordType A -ZoneName "privatelink.servicebus.windows.net"  `
                                -ResourceGroupName $rgName -Ttl 600 `
                                -PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address $ipconfig.properties.privateIPAddress)  
    } 
}

Управление частными конечными точками с помощью портала Azure

При создании частной конечной точки подключение должно быть утверждено. Если ресурс, для которого создается частная конечная точка, находится в вашем каталоге, вы можете утвердить запрос на подключение, если у вас есть необходимые разрешения. При подключении к ресурсу Azure в другом каталоге необходимо дождаться, пока владелец этого ресурса утвердит запрос на подключение.

Существует четыре состояния подготовки:

Действие в службе Состояние частной конечной точки объекта-получателя службы Description
Нет Не завершено Подключение создается вручную и ожидает утверждения от владельца ресурса Приватного канала.
Утвердить Утвержденная Подключение утверждено автоматически или вручную и готово к использованию.
Отклонить Аннулировано Подключение отклонил владелец ресурса Приватного канала.
Удалить Отключено Подключение удалил владелец ресурса Приватного канала. Частная конечная точка станет информативной и подлежит удалению для очистки.

Утверждение, отклонение или удаление подключения к частной конечной точке

  1. Войдите на портал Azure.
  2. В строке поиска введите центры событий.
  3. Выберите пространство имен для управления.
  4. Перейдите на вкладку Сеть.
  5. Перейдите к соответствующему разделу на основе операции, которую вы хотите: утвердить, отклонить или удалить.

Утверждение подключения частной конечной точки

  1. Если в состоянии подготовки есть какие-либо подключения, вы увидите подключение, указанное в состоянии подготовки.

  2. Выберите частную конечную точку, которую вы хотите утвердить.

  3. Нажмите кнопку Утвердить.

    Снимок экрана: вкладка

  4. На странице Утверждение подключения добавьте комментарий (по желанию) и нажмите кнопку Да. Если выбрать Нет, ничего не произойдет.

  5. Вы увидите, что состояние подключения к частной конечной точке в списке изменилось на Утверждено.

Отклонение подключения к частной конечной точке

  1. Если есть какие-либо подключения к частной конечной точке, которые вы хотите отклонить, будь то ожидающий запрос или существующее подключение, выберите подключение и нажмите кнопку "Отклонить ".

    Снимок экрана: вкладка

  2. На странице Отклонение подключения введите комментарий (по желанию) и нажмите кнопку Да. Если выбрать Нет, ничего не произойдет.

  3. Вы увидите, что состояние подключения к частной конечной точке в списке изменилось на Отклонено.

Удаление подключения к частной конечной точке

  1. Чтобы удалить подключение к частной конечной точке, выберите ее в списке и нажмите Удалить на панели инструментов.
  2. На странице Удалить подключение нажмите Да, чтобы подтвердить удаление частной конечной точки. Если выбрать Нет, ничего не произойдет.
  3. Вы увидите, что состояние изменилось на Отключено. Затем конечная точка исчезает из списка.

Убедитесь, что ресурсы в виртуальной сети частной конечной точки подключаются к пространству имен Центров событий по частному IP-адресу и что они корректно интегрируются с частной зоной DNS.

Сначала создайте виртуальную машину, выполнив действия, описанные в статье Краткое руководство. Создание виртуальной машины Windows на портале Azure.

На вкладке Сеть выполните следующее.

  1. Укажите виртуальную сеть и подсеть. Необходимо выбрать виртуальную сеть, в которой развернута частная конечная точка.
  2. Укажите ресурс общедоступного IP-адреса.
  3. В списке Группа безопасности сети сетевого адаптера выберите Нет.
  4. В поле Балансировка нагрузки выберите Нет.

Подключитесь к виртуальной машине, откройте командную строку и выполните следующую команду:

nslookup <event-hubs-namespace-name>.servicebus.windows.net

Должен появиться следующий результат.

Non-authoritative answer:
Name:    <event-hubs-namespace-name>.privatelink.servicebus.windows.net
Address:  10.0.0.4 (private IP address associated with the private endpoint)
Aliases:  <event-hubs-namespace-name>.servicebus.windows.net

Проблемы и ограничения разработки

  • Сведения о ценах на службу "Приватный канал Azure" см. здесь.
  • Эта возможность есть во всех общедоступных регионах Azure.
  • Максимальное число частных конечных точек для пространства имен Центров событий: 120.
  • Трафик блокируется на уровне приложения, а не на уровне TCP. Таким образом, вы увидите, что tcp-подключения или nslookup операции успешно выполняются в общедоступной конечной точке, даже если общедоступный доступ отключен.

Подробнее см. в разделе Ограничения службы “Приватный канал Azure”.