Ограничение IP-адресов в Azure WebApp от ARM (Azure Resource Manager)

Я использую шаблоны ARM для развертывания в веб-приложениях Azure, сайт развертывается в нескольких средах, причем шаблон ARM принимает разные параметры для каждой из них.

Одно из требований - включить блокировку IP-адресов на сайте в некоторых средах, но не в других. Это можно сделать через web.config, но это не идеально, поскольку я управляю всеми настройками приложения через ARM и делаю веб-развертывание заархивированного сайта. Добавление преобразований для каждой среды было бы проблемой и потребовало значительной переделки.

Я бы хотел указать что-то подобное в моем файле шаблона:

   {
      "type": "config",
      "apiVersion": "2015-08-01",
      "name": "web",
      "properties": {
        "ipSecurityRestrictions": {
          "allowUnlisted": false,
          "ipAddresses": [ "127.0.0.1", "127.0.0.2" ]
        }
      },
      "dependsOn": [
        "[concat('Microsoft.Web/sites/', parameters('nameofwebapp'))]"
      ]
    }

Просматривая поставщика ресурсов для «Microsoft / Web» с помощью resources.azure.com, кажется, что это возможно, поскольку в «config / web» есть свойство «ipSecurityRestrictions».

ARMView

Код ARM Explorer показывает это и подсказки по использованию. Я также могу найти его прошлое использование в .netSDK здесь (Закончились разрешенные ссылки).

Когда я пытаюсь установить это с помощью resources.azure.com, я не получаю обратной связи, и он возвращается к нулю.

Может ли кто-нибудь помочь с подробностями о том, как я могу использовать эту собственность?


person lawrencegripper    schedule 11.05.2016    source источник


Ответы (2)


Этот параметр предназначен для разрешенного IP-адреса, а не для исключений - вы можете установить его через https://resources.azure.com/

Пример использования:

"ipSecurityRestrictions": [
  {
    "ipAddress": "12.23.254.3",
    "subnetMask": "255.255.0.0"
  }
]
person Jamie D    schedule 11.05.2016
comment
Это сработало отлично! веб-элемент из шаблона ARM теперь выглядит так { "type": "config", "apiVersion": "2015-08-01", "name": "web", "properties": { "ipSecurityRestrictions": [ { "ipAddress": "11.11.11.11", //Only allow this ip, block all others "subnetMask": "255.255.255.255" } }, "dependsOn": [ "[concat('Microsoft.Web/sites/', parameters('nameofwebapp'))]" ] } - person lawrencegripper; 12.05.2016
comment
Вы также можете использовать для этого параметры, вот пример набора IP-адресов, который можно использовать в качестве параметра массива {name: web, type: config, apiVersion: 2015-08-01, dependsOn: [[resourceId ('Microsoft .Web / sites ', параметры (' webSiteName '))]], теги: {displayName: Allowed IPs}, properties: {ipSecurityRestrictions: [parameters (' ipRangesPermitted ')]}} Поместите это под' ресурсами 'для Wesite - person TimBunting; 31.08.2017

Мне пришлось добавить siteConfig и поместить туда ipSecurityRestrictions, чтобы он заработал:

{
    "apiVersion": "2015-06-01",
    "name": "[parameters('siteName')]",
    "type": "Microsoft.Web/Sites",
    ...
    "properties":{
        "siteConfig":{
            "ipSecurityRestrictions" : {
                 "ipAddress": "123.123.123.123"
            }
        }
    },
    "resources" : {
        ...
    }
}
person Lars Celie    schedule 19.03.2018