Использование конечных точек служб для виртуальной сети с Центрами событий AzureUse Virtual Network service endpoints with Azure Event Hubs

Интеграция Центров событий с конечными точками службы виртуальной сети обеспечивает безопасный доступ к возможностям обмена сообщениями из рабочих нагрузок, таких как виртуальные машины, привязанные к виртуальным сетям, где трафик защищен с обеих сторон.The integration of Event Hubs with Virtual Network (VNet) Service Endpoints enables secure access to messaging capabilities from workloads such as virtual machines that are bound to virtual networks, with the network traffic path being secured on both ends.

После настройки привязано к конечной точке службы по крайней мере одну подсеть виртуальной сети, соответствующего пространства имен концентраторов событий больше не принимает трафик из любого места, но авторизованные подсетей в виртуальных сетях.Once configured to bound to at least one virtual network subnet service endpoint, the respective Event Hubs namespace no longer accepts traffic from anywhere but authorized subnets in virtual networks. С точки зрения виртуальной сети привязка пространства имен Центров событий к конечной точке службы настраивает изолированный сетевой туннель от подсети виртуальной сети к службе обмена сообщениями.From the virtual network perspective, binding an Event Hubs namespace to a service endpoint configures an isolated networking tunnel from the virtual network subnet to the messaging service.

Результатом является частная и изолированная взаимосвязь между рабочими нагрузками, привязанными к подсети, и соответствующим пространством имен Центров событий, несмотря на то что наблюдаемый сетевой адрес конечной точки службы обмена сообщениями находится в общедоступном диапазоне IP-адресов.The result is a private and isolated relationship between the workloads bound to the subnet and the respective Event Hubs namespace, in spite of the observable network address of the messaging service endpoint being in a public IP range. Существует исключение в такой ситуации.There is an exception to this behavior. Включение конечной точки службы по умолчанию включает правило "denyall" в брандмауэре IP-адрес, связанный с виртуальной сетью.Enabling a service endpoint, by default, enables the denyall rule in the IP firewall associated with the virtual network. Можно добавить определенные IP-адреса в брандмауэре IP-адрес, чтобы разрешить доступ к общедоступной конечной точки концентратора событий.You can add specific IP addresses in the IP firewall to enable access to the Event Hub public endpoint.

Предупреждение

Реализация интеграции виртуальных сетей может препятствовать взаимодействию других служб Azure с Центрами событий.Implementing Virtual Networks integration can prevent other Azure services from interacting with Event Hubs.

Доверенные службы Майкрософт не поддерживаются, если реализованы виртуальные сети.Trusted Microsoft services are not supported when Virtual Networks are implemented.

Распространенные сценарии Azure, которые не работают с виртуальными сетями (обратите внимание, что список НЕ является исчерпывающим):Common Azure scenarios that don't work with Virtual Networks (note that the list is NOT exhaustive) -

  • Azure MonitorAzure Monitor
  • Azure Stream AnalyticsAzure Stream Analytics
  • Интеграция со службой "Сетка событий Azure".Integration with Azure Event Grid
  • Маршруты Центра Интернета вещей Azure.Azure IoT Hub Routes
  • Device Explorer Интернета вещей Azure.Azure IoT Device Explorer
  • Обозреватель данных AzureAzure Data Explorer

В виртуальной сети должны присутствовать следующие службы Майкрософт:The below Microsoft services are required to be on a virtual network

  • Веб-приложения Azure.Azure Web Apps
  • Функции AzureAzure Functions

Важно!

Виртуальные сети поддерживаются в стандартном и выделенном уровнях Центра событий.Virtual networks are supported in standard and dedicated tiers of Event Hubs. В "базовом" уровне не поддерживается.It's not supported in basic tier.

Расширенные сценарии обеспечения безопасности, доступные при интеграции с виртуальной сетьюAdvanced security scenarios enabled by VNet integration

Решений, требующих безопасности тесной и подразделяется и сегментации между compartmentalized службами, и если обеспечивают подсети виртуальной сети по-прежнему требуется путей передачи данных между сервисами, размещенными в этих секциях.Solutions that require tight and compartmentalized security, and where virtual network subnets provide the segmentation between the compartmentalized services, still need communication paths between services residing in those compartments.

Любой прямой IP-маршрут между секциями, включая передачу трафика HTTPS через TCP/IP, несет риск использования уязвимостей на сетевом уровне.Any immediate IP route between the compartments, including those carrying HTTPS over TCP/IP, carries the risk of exploitation of vulnerabilities from the network layer on up. Службы обмена сообщениями обеспечивают полностью изолированные пути взаимодействия, где сообщения даже записываются на диск при переходе между сторонами.Messaging services provide completely insulated communication paths, where messages are even written to disk as they transition between parties. Рабочие нагрузки в двух разных виртуальных сетях, которые связаны с одним и тем же экземпляром Центров событий, могут эффективно и надежно связываться через сообщения, в то время как целостность границ изолированной сети сохраняется.Workloads in two distinct virtual networks that are both bound to the same Event Hubs instance can communicate efficiently and reliably via messages, while the respective network isolation boundary integrity is preserved.

Это означает, что ваши конфиденциальные облачные решения, влияющие на безопасность, не только получают доступ к ведущим в отрасли надежным и масштабируемым асинхронным службам обмена сообщениями Azure, но теперь они могут использовать обмен сообщениями для создания путей передачи данных между защищенными секциями решений, которые по своей сути более безопасны, чем степень безопасности в любом режиме одноранговой связи, включая HTTPS и другие протоколы сокетов TLS.That means your security sensitive cloud solutions not only gain access to Azure industry-leading reliable and scalable asynchronous messaging capabilities, but they can now use messaging to create communication paths between secure solution compartments that are inherently more secure than what is achievable with any peer-to-peer communication mode, including HTTPS and other TLS-secured socket protocols.

Привязка Центров событий к виртуальным сетямBind Event Hubs to Virtual Networks

Правила виртуальной сети — это функция безопасности брандмауэра, которая контролирует, принимает ли пространство имен Центров событий Azure соединения из определенной подсети виртуальной сети.Virtual network rules are the firewall security feature that controls whether your Azure Event Hubs namespace accepts connections from a particular virtual network subnet.

Привязка пространства имен Центров событий к виртуальной сети состоит из двух этапов.Binding an Event Hubs namespace to a virtual network is a two-step process. Сначала необходимо создать конечную точку службы для виртуальной сети в подсети виртуальной сети и подключить ее к Microsoft.EventHub, как описано в статье Конечные точки служб для виртуальной сети.You first need to create a Virtual Network service endpoint on a Virtual Network subnet and enable it for "Microsoft.EventHub" as explained in the service endpoint overview. После добавления конечной точки службы вы привязываете пространство имен Центров событий к ней с помощью правила виртуальной сети.Once you have added the service endpoint, you bind the Event Hubs namespace to it with a virtual network rule.

Правило виртуальной сети — это связь пространства имен Центров событий с подсетью виртуальной сети.The virtual network rule is an association of the Event Hubs namespace with a virtual network subnet. Пока правило существует, всем рабочим нагрузкам, привязанным к подсети, предоставляется доступ к пространству имен Центров событий.While the rule exists, all workloads bound to the subnet are granted access to the Event Hubs namespace. Центры событий никогда не устанавливают исходящие подключения, не нуждаются в доступе и поэтому не получают доступ к вашей подсети, если это правило включено.Event Hubs itself never establishes outbound connections, does not need to gain access, and is therefore never granted access to your subnet by enabling this rule.

Создание правила виртуальной сети с использованием шаблонов Azure Resource ManagerCreate a virtual network rule with Azure Resource Manager templates

Следующий шаблон Resource Manager позволяет добавить правило виртуальной сети в существующее пространство имен Центров событий.The following Resource Manager template enables adding a virtual network rule to an existing Event Hubs namespace.

Параметры шаблона:Template parameters:

  • namespaceName. Пространство имен Центров событий.namespaceName: Event Hubs namespace.
  • vnetRuleName. Имя создаваемого правила виртуальной сети.vnetRuleName: Name for the Virtual Network rule to be created.
  • virtualNetworkingSubnetId. Полный путь Resource Manager для подсети виртуальной сети (например, /subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Network/virtualNetworks/{vnet}/subnets/default для подсети виртуальной сети по умолчанию).virtualNetworkingSubnetId: Fully qualified Resource Manager path for the virtual network subnet; for example, /subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Network/virtualNetworks/{vnet}/subnets/default for the default subnet of a virtual network.

Примечание

Хотя запрещающие правила отсутствуют, в шаблоне Azure Resource Manager для действия по умолчанию установлено значение Разрешить, которое не ограничивает подключения.While there are no deny rules possible, the Azure Resource Manager template has the default action set to "Allow" which doesn't restrict connections. При создании правил виртуальной сети или брандмауэров необходимо изменить значение параметра defaultAction.When making Virtual Network or Firewalls rules, we must change the "defaultAction"

Отfrom

"defaultAction": "Allow"

значениеto

"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": {
          "virtualNetworkRules": 
          [
            {
              "subnet": {
                "id": "[variables('subNetId')]"
              },
              "ignoreMissingVnetServiceEndpoint": false
            }
          ],
          "ipRules":[<YOUR EXISTING IP RULES>],
          "defaultAction": "Deny"
        }
      }
    ],
    "outputs": { }
  }

Инструкции по развертыванию шаблона см. в статье Развертывание ресурсов с использованием шаблонов Resource Manager и Azure PowerShell.To deploy the template, follow the instructions for Azure Resource Manager.

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

Дополнительные сведения о виртуальных сетях см. по следующим ссылкам:For more information about virtual networks, see the following links: