Поделиться через


Использование фильтрации подключений по протоколу IP в Azure IoT DPS

Безопасность является важной характеристикой любого решения Интернета вещей. Иногда при настройке системы безопасности необходимо явно указать IP-адреса, с которых могут подключаться устройства. Функция фильтрации IP-адресов для Подготовки устройств к добавлению в Центр Интернета вещей Azure (DPS) позволяет настроить правила для отклонения или приема трафика с определенных IPv4-адресов.

Когда использовать

Есть два варианта применения этой функции, когда рекомендуется блокировать подключения к конечной точке DPS с определенных IP-адресов:

  • Служба DPS должна принимать трафик только с IP-адресов из определенного диапазона и отклонять остальной трафик. Например, вы используете DPS с Azure Express Route для создания частных подключений между экземпляром DPS и устройствами.

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

Ограничения правил IP-фильтра

Обратите внимание на следующие ограничения, если включена фильтрация IP-адресов:

  • Возможно, вы не сможете использовать портал Azure для управления регистрацией. В этом случае можно добавить IP-адрес одного или нескольких компьютеров ipFilterRules в экземпляр DPS и управлять ими с помощью Azure CLI, PowerShell или API службы.

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

Применение правил фильтрации

Правила фильтрации IP-адресов применяются на уровне экземпляра DPS. Поэтому они действуют для всех подключений с устройств и внутренних приложений, использующих любые поддерживаемые протоколы.

При попытке подключения с IP-адреса, который соответствует правилу отклонения IP-адресов в экземпляре DPS, пользователь получает сообщение об ошибке с кодом состояния 401 (Не авторизовано) и описанием. В ответном сообщении не указывается правило фильтрации IP-адресов.

Важно!

Отклонение IP-адресов может препятствовать взаимодействию других служб Azure с экземпляром DPS.

Значение по умолчанию

По умолчанию фильтрация IP-адресов отключена, а доступ к общедоступной сети имеет значение "Все сети". Этот параметр по умолчанию означает, что DPS принимает подключения из любого IP-адреса или соответствует правилу, которое принимает диапазон IP-адресов 0.0.0.0/0.

IoT DPS default IP filter settings.

Добавление правила фильтрации IP-адресов

Чтобы добавить правило фильтрации IP-адресов, выполните приведенные действия.

  1. Переход на портал Azure.

  2. В меню слева на портале нажмите Все ресурсы.

  3. Выберите службу Подготовки устройств.

  4. В меню Параметры слева выберите "Сеть".

  5. В разделе "Доступ к общедоступной сети" выберите выбранные диапазоны IP-адресов

  6. Выберите и добавьте правило фильтра IP-адресов.

    Add an IP filter rule to an IoT DPS.

  7. Заполните следующие поля:

    Поле Описание:
    Имя Уникальная буквенно-цифровая строка до 128 символов. Допускаются только 7-разрядные буквы и цифры ASCII, а также {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
    Диапазон адресов Один IPv4-адрес или блок IP-адресов в нотации CIDR. Например, в нотации CIDR 192.168.100.0/22 обозначает диапазон из 1024 IPv4-адресов от 192.168.100.0 до 192.168.103.255.
    Действие Выберите "Разрешить" или "Блокировать".

    After selecting Add an IP Filter rule.

  8. Выберите Сохранить. Вы увидите оповещение, уведомляющее вас о том, что обновление выполняется.

    Notification about saving an IP filter rule.

    Примечание.

    + Добавление правила фильтра IP-адресов отключено при достижении максимум 100 правил IP-фильтров.

Изменение правила ФИЛЬТРАЦИИ IP-адресов

Изменение существующего правила:

  1. Выберите данные правила фильтра IP, которые нужно изменить.

    Edit an IP filter rule.

  2. Внесите изменения.

  3. Выберите Сохранить.

Удаление правила фильтрации IP-адресов

Чтобы удалить правило фильтрации IP-адресов, выполните приведенные действия.

  1. Щелкните значок удаления в строке правила IP, которое вы хотите удалить.

    Delete an IoT DPS IP filter rule.

  2. Выберите Сохранить.

Оценка правила фильтрации IP-адресов

Правила фильтрации IP-адресов применяются в порядке. Первое правило, соответствующее IP-адресу, определяет действие принятия или отклонения.

Например, если вы хотите, чтобы адреса в диапазоне 192.168.100.0/22 принимались, а все остальные отклонялись, то первым правилом в списке должно быть именно правило о приеме трафика из диапазона адресов 192.168.100.0/22. Следующим должно быть правило об отклонении всех адресов; для этого используется диапазон 0.0.0.0/0.

Чтобы изменить порядок правил фильтрации IP-адресов, выполните следующие действия.

  1. Выберите правило, которое нужно переместить.

  2. Перетащите правило в нужное расположение.

  3. Выберите Сохранить.

Обновление правил фильтрации IP-адресов с помощью шаблонов Azure Resource Manager

Существует два способа обновления IP-фильтра DPS:

  1. Вызовите метод REST API ресурсов Центр Интернета вещей. Чтобы узнать, как обновить правила фильтрации IP-адресов с помощью REST, см IpFilterRule . в разделе "Определения" метода "Ресурс Центра Iot Hub — обновление".

  2. Используйте шаблоны Azure Resource Manager. Инструкции по использованию шаблонов Resource Manager см . в шаблонах Azure Resource Manager. В следующих примерах показано, как создавать, изменять и удалять правила фильтрации IP-адресов DPS с помощью шаблонов Azure Resource Manager.

    Примечание.

    Azure CLI и Azure PowerShell в настоящее время не поддерживают обновления правил фильтрации IP-адресов DPS.

Добавление правила фильтрации IP-адресов

В следующем примере шаблона создается новое правило фильтрации IP-адресов с именем AllowAll, которое принимает весь трафик.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": {
        "iotDpsName": {
            "type": "string",
            "defaultValue": "[resourceGroup().name]",
            "minLength": 3,
            "metadata": {
                "description": "Specifies the name of the IoT DPS service."
            }
        }, 
        "location": {
            "type": "string",
            "defaultValue": "[resourceGroup().location]",
            "metadata": {
                "description": "Location for Iot DPS resource."
            }
        }        
    }, 
    "variables": {
        "iotDpsApiVersion": "2020-01-01"
    }, 
    "resources": [
        {
            "type": "Microsoft.Devices/provisioningServices",
            "apiVersion": "[variables('iotDpsApiVersion')]",
            "name": "[parameters('iotDpsName')]",
            "location": "[parameters('location')]",
            "sku": {
                "name": "S1",
                "tier": "Standard",
                "capacity": 1
            },
            "properties": {
                "IpFilterRules": [
                    {
                        "FilterName": "AllowAll",
                        "Action": "Accept",
                        "ipMask": "0.0.0.0/0"
                    }
                ]
            }            
        }
    ]
}

Обновите атрибуты правила фильтрации IP-адресов для шаблона в соответствии со своими требованиями.

Атрибут Description
FilterName Укажите имя правила фильтрации IP-адресов. Оно должно быть уникальной строкой буквенно-цифровых символов длиной не более 128 символов без учета регистра. Допускаются только 7-разрядные буквы и цифры ASCII, а также {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
Действие Допустимые значения : Accept or Reject в качестве действия для правила фильтрации IP-адресов.
ipMask Укажите один IPv4-адрес или блок IP-адресов в нотации CIDR. Например, в нотации CIDR 192.168.100.0/22 обозначает диапазон из 1024 IPv4-адресов от 192.168.100.0 до 192.168.103.255.

Обновление правила фильтрации IP-адресов

В следующем примере шаблона выполняется обновление правила фильтрации IP-адресов с именем AllowAll (показано ранее) для отклонения всего трафика.

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",  
    "contentVersion": "1.0.0.0",  
    "parameters": { 
        "iotDpsName": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().name]", 
            "minLength": 3, 
            "metadata": { 
                "description": "Specifies the name of the IoT DPS service." 
            } 
        },  
        "location": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().location]", 
            "metadata": { 
                "description": "Location for Iot DPS resource." 
            } 
        }        
    },  
    "variables": { 
        "iotDpsApiVersion": "2020-01-01" 
    },  
    "resources": [ 
        { 
            "type": "Microsoft.Devices/provisioningServices", 
            "apiVersion": "[variables('iotDpsApiVersion')]", 
            "name": "[parameters('iotDpsName')]", 
            "location": "[parameters('location')]", 
            "sku": { 
                "name": "S1", 
                "tier": "Standard", 
                "capacity": 1 
            }, 
            "properties": { 
                "IpFilterRules": [ 
                    { 
                        "FilterName": "AllowAll", 
                        "Action": "Reject", 
                        "ipMask": "0.0.0.0/0" 
                    } 
                ] 
            }             
        } 
    ] 
}

Удаление правила фильтрации IP-адресов

В следующем примере шаблона удаляются все правила фильтрации IP-адресов для экземпляра DPS.

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",  
    "contentVersion": "1.0.0.0",  
    "parameters": { 
        "iotDpsName": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().name]", 
            "minLength": 3, 
            "metadata": { 
                "description": "Specifies the name of the IoT DPS service." 
            } 
        },  
        "location": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().location]", 
            "metadata": { 
                "description": "Location for Iot DPS resource." 
            } 
        }        
    },  
    "variables": { 
        "iotDpsApiVersion": "2020-01-01" 
    },  
    "resources": [ 
        { 
            "type": "Microsoft.Devices/provisioningServices", 
            "apiVersion": "[variables('iotDpsApiVersion')]", 
            "name": "[parameters('iotDpsName')]", 
            "location": "[parameters('location')]", 
            "sku": { 
                "name": "S1", 
                "tier": "Standard", 
                "capacity": 1 
            }, 
            "properties": { 
            }             
        } 
    ] 
}

Следующие шаги

Сведения об управлении DPS см. в следующих статьях: