Исправление политики ограничения сети для учетной записи хранения Azure

У меня есть этот файл определения для учетных записей хранения, которые должны ограничивать доступ к сети. Я хочу запустить эту политику для существующей учетной записи хранения, и если она не соответствует ей, измените доступ к сети (удалите общий доступ + назначьте подмножество). Как я могу создать это исправление в рамках этой политики?

"properties": {
    "displayName": "Audit Storage Accounts Open to Public Networks",
    "policyType": "Custom",
    "mode": "Indexed",
    "description": "This policy ensures that storage accounts with exposure to Public Networks are audited.",
    "parameters": {},
    "policyRule": {
        "if": {
            "allOf": [{
                    "field": "type",
                    "equals": "Microsoft.Storage/storageAccounts"
                },
                {
                    "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction",
                    "equals": "Allow"
                }
            ]
        },
        "then": {
            "effect": "audit"
        }
    }
}

person Blue Clouds    schedule 11.12.2020    source источник


Ответы (1)


Если вы хотите назначить виртуальную сеть для учетной записи хранения с помощью политики Azure, вы можете использовать эффект DeployIfNotExist для его реализации. Например

Мой файл определений. Обратите внимание, что в примере вы используете существующую подсеть. Если вы хотите создать новую подсеть, обратитесь к шаблон

{
  "properties": {
    "displayName": "storage3",
    "policyType": "Custom",
    "mode": "All",
    "parameters": {
      "effect": {
        "type": "String",
        "metadata": {
          "displayName": "Effect",
          "description": "Enable or disable the execution of the policy"
        },
        "allowedValues": [
          "DeployIfNotExists",
          "Disabled"
        ],
        "defaultValue": "DeployIfNotExists"
      }
    },
    "policyRule": {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Storage/storageAccounts"
          },
          {
            "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction",
            "notEquals": "Deny"
          }
        ]
      },
      "then": {
        "effect": "[parameters('effect')]",
        "details": {
          "type": "Microsoft.Storage/storageAccounts",
          "name": "[field('name')]",
          "existenceCondition": {
            "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction",
            "equals": "Deny"
          },
          "roleDefinitionIds": [
            "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"

          ],
          "deployment": {
            "properties": {
              "mode": "incremental",
              "template": {
                "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                "contentVersion": "1.0.0.0",
                "parameters": {
                  "name": {
                    "type": "string"
                  },
                  "sku": {
                    "type": "string"
                  },
                  "location": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  }
                },
                "resources": [
                  {
                    "name": "[parameters('name')]",
                    "type": "Microsoft.Storage/storageAccounts",
                    "apiVersion": "2019-06-01",
                    "location": "[parameters('location')]",
                    "properties": {
                      "networkAcls": {
                        "bypass": "AzureServices",
                        "virtualNetworkRules": [
                          {
                            "id": "",
                            "action": "Allow"
                          }
                        ],
                        "ipRules": [],
                        "defaultAction": "Deny"
                      }
                    },
                    "dependsOn": [],
                    "sku": {
                      "name": "[parameters('sku')]"
                    },
                    "kind": "[parameters('kind')]"
                  }
                ]
              },
              "parameters": {
                "name": {
                  "value": "[field('name')]"
                },
                "sku": {
                  "value": "[field('Microsoft.Storage/storageAccounts/sku.name')]"
                },
                "location": {
                  "value": "[field('location')]"
                },
                "kind": {
                  "value": "[field('kind')]"
                }
              }
            }
          }
        }
      }
    }
  }
}

введите здесь описание изображения  введите описание изображения здесь

Для получения более подробной информации, пожалуйста, обратитесь к

https://docs.microsoft.com/en-us/azure/governance/policy/concepts/effects#deployifnotexists

https://docs.microsoft.com/en-us/azure/storage/common/storage-network-security#grant-access-from-a-virtual-network

person Jim Xu    schedule 16.12.2020