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

Интеграция Центров событий с конечными точками службы виртуальной сети обеспечивает безопасный доступ к возможностям обмена сообщениями из рабочих нагрузок, таких как виртуальные машины, привязанные к виртуальным сетям, где трафик защищен с обеих сторон.

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

Результатом является частная и изолированная взаимосвязь между рабочими нагрузками, привязанными к подсети, и соответствующим пространством имен Центров событий, несмотря на то что наблюдаемый сетевой адрес конечной точки службы обмена сообщениями находится в общедоступном диапазоне IP-адресов. Но есть одно исключение. Активация конечной точки службы по умолчанию включает правило denyall в брандмауэре IP-адресов, связанном с виртуальной сетью. Можно добавить определенные IP-адреса в брандмауэр IP-адресов, чтобы открыть доступ к общедоступной конечной точке Центров событий.

Важные моменты

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

Расширенные сценарии обеспечения безопасности, доступные при интеграции с виртуальной сетью

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

Любой прямой IP-маршрут между секциями, включая передачу трафика HTTPS через TCP/IP, несет риск использования уязвимостей на сетевом уровне. Службы обмена сообщениями обеспечивают изолированные пути взаимодействия, где сообщения при передаче между сторонами даже записываются на диск. Рабочие нагрузки в двух разных виртуальных сетях, которые связаны с одним и тем же экземпляром Центров событий, могут эффективно и надежно связываться через сообщения, в то время как целостность границ изолированной сети сохраняется.

Это означает, что ваши конфиденциальные облачные решения, влияющие на безопасность, не только получают доступ к ведущим в отрасли надежным и масштабируемым асинхронным службам обмена сообщениями Azure, но теперь они могут использовать обмен сообщениями для создания путей передачи данных между защищенными секциями решений, которые по своей сути более безопасны, чем степень безопасности в любом режиме одноранговой связи, включая HTTPS и другие протоколы сокетов TLS.

Привязка концентраторов событий к виртуальным сетям

Правила виртуальной сети — это функция безопасности брандмауэра, которая контролирует, принимает ли пространство имен Центров событий Azure соединения из определенной подсети виртуальной сети.

Привязка пространства имен Центров событий к виртуальной сети состоит из двух этапов. Сначала необходимо создать конечную точку службы для виртуальной сети в подсети виртуальной сети и включить ее для Microsoft.EventHub, как описано в статье Общие сведения о конечных точках служб. После добавления конечной точки службы вы привязываете пространство имен Центров событий к ней с помощью правила виртуальной сети.

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

Использование портала Azure

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

  1. Перейдите к пространству имен Центров событий на портале Azure.

  2. Выберите Сеть в разделе Параметры в меню слева.

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

    • Отключено. Этот вариант отключает любой открытый доступ к пространству имен. Такое пространство имен будет доступно только через частные конечные точки.

      Networking page - public access tab - public network access is disabled.

    • Выбранные сети. Этот вариант разрешает открытый доступ к пространству имен с использованием ключа доступа из выбранных сетей.

      Важно!

      Если вы выбрали вариант Выбранные сети, добавьте хотя бы одно правило брандмауэра для IP-адресов или виртуальную сеть, которые будут иметь доступ к пространству имен. Выберите Отключено, если вы хотите весь трафик к этому пространству имен направлять только через частные конечные точки.

      Networking page with the selected networks option selected.

    • Все сети (вариант по умолчанию). Этот вариант разрешает открытый доступ с правильным ключом доступа из всех сетей. Если выбрать вариант Все сети, центр событий будет принимать подключения с любого IP-адреса (с использованием ключа доступа). Такое значение параметра равноценно правилу, которое принимает диапазон IP-адресов 0.0.0.0/0.

      Screenshot that shows the Public access page with the All networks option selected.

  4. Чтобы ограничить доступ определенным набором сетей, выберите вариант Выбранные сети в верхней части страницы, если он еще не выбран.

  5. В разделе Виртуальные сети на этой странице щелкните + Добавить существующую виртуальную сеть*. Выберите + Создать виртуальную сеть, если хотите создать виртуальную сеть.

    Selection of Add existing virtual network menu item.

    Важно!

    Если вы выбрали вариант Выбранные сети, добавьте хотя бы одно правило брандмауэра для IP-адресов или виртуальную сеть, которые будут иметь доступ к пространству имен. Выберите Отключено, если вы хотите весь трафик к этому пространству имен направлять только через частные конечные точки.

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

    Image showing the selection of a subnet.

  7. После включения конечной точки службы для подсети для Microsoft.EventHub должно отобразиться показанное ниже сообщение об успешном выполнении. Нажмите Добавить внизу страницы, чтобы добавить сеть.

    Image showing the selection of a subnet and enabling an endpoint.

    Примечание

    Если конечную точку службы невозможно включить, предупреждение об отсутствии конечной точки службы для виртуальной сети можно проигнорировать, используя шаблон Resource Manager. Эта функция недоступна на портале.

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

  9. На панели инструментов нажмите Сохранить, чтобы сохранить параметры. Подождите несколько минут, чтобы подтверждение появилось в уведомлениях портала.

    Image showing the saving of virtual network.

    Примечание

    Инструкции по ограничению доступа к конкретным IP-адресам или диапазонам см. в статье Разрешение доступа из конкретных IP-адресов или диапазонов.

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

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

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

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

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

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

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

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

Azure IoT Central

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

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

Использование шаблона Resource Manager

Приведенный ниже пример шаблона Resource Manager добавляет правило виртуальной сети в существующее пространство имен Центров событий. Для правила сети он указывает идентификатор подсети в виртуальной сети.

Идентификатор — это полный путь Resource Manager для подсети виртуальной сети. Например, /subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Network/virtualNetworks/{vnet}/subnets/default для подсети виртуальной сети, выбираемой по умолчанию.

При добавлении правил виртуальной сети или брандмауэра задайте для параметра defaultAction значение Deny.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "eventhubNamespaceName": {
        "type": "string",
        "metadata": {
          "description": "Name of the Event Hubs namespace"
        }
      },
      "virtualNetworkName": {
        "type": "string",
        "metadata": {
          "description": "Name of the Virtual Network Rule"
        }
      },
      "subnetName": {
        "type": "string",
        "metadata": {
          "description": "Name of the Virtual Network Sub Net"
        }
      },
      "location": {
        "type": "string",
        "metadata": {
          "description": "Location for Namespace"
        }
      }
    },
    "variables": {
      "namespaceNetworkRuleSetName": "[concat(parameters('eventhubNamespaceName'), concat('/', 'default'))]",
      "subNetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets/', parameters('virtualNetworkName'), parameters('subnetName'))]"
    },
    "resources": [
      {
        "apiVersion": "2018-01-01-preview",
        "name": "[parameters('eventhubNamespaceName')]",
        "type": "Microsoft.EventHub/namespaces",
        "location": "[parameters('location')]",
        "sku": {
          "name": "Standard",
          "tier": "Standard"
        },
        "properties": { }
      },
      {
        "apiVersion": "2017-09-01",
        "name": "[parameters('virtualNetworkName')]",
        "location": "[parameters('location')]",
        "type": "Microsoft.Network/virtualNetworks",
        "properties": {
          "addressSpace": {
            "addressPrefixes": [
              "10.0.0.0/23"
            ]
          },
          "subnets": [
            {
              "name": "[parameters('subnetName')]",
              "properties": {
                "addressPrefix": "10.0.0.0/23",
                "serviceEndpoints": [
                  {
                    "service": "Microsoft.EventHub"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "apiVersion": "2018-01-01-preview",
        "name": "[variables('namespaceNetworkRuleSetName')]",
        "type": "Microsoft.EventHub/namespaces/networkruleset",
        "dependsOn": [
          "[concat('Microsoft.EventHub/namespaces/', parameters('eventhubNamespaceName'))]"
        ],
        "properties": {
          "publicNetworkAccess": "Enabled",
          "defaultAction": "Deny",
          "virtualNetworkRules": 
          [
            {
              "subnet": {
                "id": "[variables('subNetId')]"
              },
              "ignoreMissingVnetServiceEndpoint": false
            }
          ],
          "ipRules":[],
          "trustedServiceAccessEnabled": false
        }
      }
    ],
    "outputs": { }
  }

Инструкции по развертыванию шаблона см. в статье Развертывание ресурсов с помощью шаблонов ARM и Azure PowerShell.

Важно!

Если правила IP-адресов и виртуальных сетей отсутствуют, весь трафик передается в пространство имен, даже если для параметра defaultAction задано значение deny. Доступ к пространству имен можно получить через общедоступный Интернет (используя ключ доступа). Укажите как минимум одно правило IP-адреса или правило виртуальной сети для пространства имен, разрешающее трафик только с указанных IP-адресов или подсети виртуальной сети.

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

REST API

Значение свойства defaultAction по умолчанию было Deny для версий API до 2021-01-01-preview. Но правило запрета не применяется, если вы не настроили фильтры IP-адресов или правила виртуальной сети. По сути, если у вас нет IP-фильтров или правил виртуальной сети, оно рассматривается как правило Allow.

Начиная с версии API 2021-06-01-preview, значение по умолчанию свойства defaultAction — Allow, что позволяет точно отразить принудительное применение на стороне службы. Если для действия по умолчанию задано значение Deny, фильтры IP-адресов и правила виртуальной сети применяются принудительно. Если для действия по умолчанию задано значение Allow, фильтры IP-адресов и правила виртуальной сети не применяются принудительно. Служба запоминает правила, когда вы отключаете их и снова включаете.

В версиях API от 2021-06-01-preview также представлено новое свойство publicNetworkAccess. Если для него задано значение Disabled, допускаются только операции в приватных каналах. Если для него задано значение Enabled, разрешаются операции через общедоступный Интернет.

Дополнительные сведения об этих свойствах см. в статьях Создание и обновление набора сетевых правил и Создание и обновление подключений к частным конечным точкам.

Примечание

Ни один из указанных выше параметров не позволяет обойти проверку утверждений через SAS или проверку подлинности Azure AD. Проверка подлинности всегда выполняется после того, как служба выполнит сетевые проверки, настроенные с использованием параметров defaultAction, publicNetworkAccess и privateEndpointConnections.

Портал Azure

Портал Azure всегда использует последнюю версию API для получения и задания свойств. Если вы ранее настроили пространство имен с использованием 2021-01-01-preview или более ранней версии, задав для параметра defaultAction значение Deny, а также нулевые фильтры IP и правила виртуальной сети, то на портале устанавливался вариант Выбранные сети на странице Сети для пространства имен. Теперь будет выбран вариант Все сети.

Screenshot that shows the Public access page with the All networks option selected.

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

Дополнительные сведения о виртуальных сетях см. по следующим ссылкам: