Политика Azure (deployifnotexists) работает не так, как ожидалось

Это мой первый пост здесь. В Azure я пытаюсь выполнить развертывание учетных записей хранения, если не включены определенные параметры. Я прикрепил свой код. Я хочу сделать вот что:

  1. Убедитесь, что безопасная передача включена
  2. Проверить только TLS1_2
  3. Проверьте прошивку
  4. На FW необходимо принять службы Azure (например, журналы потоков nsg и т. Д.)

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

{
  "mode": "All",
  "policyRule": {
    "if": {
      "field": "type",
      "equals": "Microsoft.Storage/storageAccounts"
    },
    "then": {
      "effect": "deployIfNotExists",
      "details": {
        "type": "Microsoft.Storage/storageAccounts",
        "roleDefinitionIds": [
          "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
        ],
        "existenceCondition": {
          "allOf": [
            {
              "field": "Microsoft.Storage/storageAccounts/supportsHttpsTrafficOnly",
              "equals": true
            },
            {
              "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
              "equals": "TLS1_2"
            },
            {
              "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction",
              "equals": "deny"
            },
            {
              "field": "Microsoft.Storage/storageAccounts/networkAcls.bypass",
              "contains": "AzureServices"
            }
          ]
        },
        "deployment": {
          "properties": {
            "mode": "incremental",
            "template": {
              "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
              "contentVersion": "1.0.0.0",
              "parameters": {
                "storageAccountName": {
                  "type": "String",
                  "metadata": {
                    "description": "storageAccountName"
                  }
                },
                "location": {
                  "type": "String",
                  "metadata": {
                    "description": "location"
                  }
                }
              },
              "variables": {},
              "resources": [
                {
                  "type": "Microsoft.Storage/storageAccounts",
                  "apiVersion": "2019-06-01",
                  "name": "[parameters('storageAccountName')]",
                  "location": "[parameters('location')]",
                  "properties": {
                    "minimumTlsVersion": "TLS1_2",
                    "networkAcls": {
                      "bypass": "AzureServices",
                      "defaultAction": "Deny"
                    },
                    "supportsHttpsTrafficOnly": true
                  }
                }
              ],
              "outputs": {}
            },
            "parameters": {
              "storageAccountName": {
                "value": "[field('Name')]"
              },
              "location": {
                "value": "[field('location')]"
              }
            }
          }
        }
      }
    }
  },
  "parameters": {}
}

Всем спасибо


person Harken350    schedule 12.10.2020    source источник


Ответы (1)


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

Под этим я подразумеваю, что я не могу развернутьIfNotExists в настройках учетной записи хранения учетных записей (как указано выше), но я могу развернуть диагностический журнал в SA. Я закрываю этот вопрос. Я попробую добавить, и если я сделаю что-нибудь хорошее, я верну его к этому вопросу для чутких глаз.

person Harken350    schedule 12.10.2020