Compartilhar via


Início rápido: crie uma resposta automática a um alerta de segurança específico usando um modelo ARM ou Bicep

Neste início rápido, você aprenderá a usar um modelo do ARM (modelo do Azure Resource Manager) ou um arquivo Bicep para criar uma automação de fluxo de trabalho. A automação do fluxo de trabalho disparará um aplicativo lógico quando alertas de segurança específicos forem recebidos pelo Microsoft Defender para Nuvem.

Pré-requisitos

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Para obter uma lista das funções e das permissões necessárias para trabalhar com o recurso de automação de fluxo de trabalho do Microsoft Defender para Nuvem, confira Automação de fluxo de trabalho.

Os exemplos neste início rápido pressupõem que você tenha um Aplicativo lógico existente. Para implantar o exemplo, você passa os parâmetros que contêm o nome do aplicativo lógico e o grupo de recursos. Para obter informações sobre como implantar um aplicativo lógico, consulte Início Rápido: criar e implantar um fluxo de trabalho de aplicativo lógico de Consumo em Aplicativos Lógicos do Azure multilocatário com Bicep ou Início rápido: criar e implantar um fluxo de trabalho de aplicativo lógico de Consumo nos Aplicativos lógicos do Azure multilocatário com um modelo do ARM.

Tutoriais do modelo ARM

Um modelo do Azure Resource Manager é um arquivo JavaScript Object Notation (JSON) que define a infraestrutura e a configuração do seu projeto. O modelo usa a sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Se seu ambiente atender aos pré-requisitos e você estiver familiarizado com o uso de modelos ARM, selecione o botão Implantar no Azure. O modelo será aberto no portal do Azure.

Botão para implantar o modelo do Resource Manager no Azure.

Examinar o modelo

O modelo usado neste início rápido é proveniente dos Modelos de Início Rápido do Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "5191074894407113732"
    }
  },
  "parameters": {
    "automationName": {
      "type": "string",
      "maxLength": 24,
      "minLength": 3
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for the automation"
      }
    },
    "logicAppName": {
      "type": "string",
      "minLength": 3
    },
    "logicAppResourceGroupName": {
      "type": "string",
      "minLength": 3
    },
    "subscriptionId": {
      "type": "string",
      "defaultValue": "[subscription().subscriptionId]",
      "metadata": {
        "description": "The Azure resource GUID id of the subscription"
      }
    },
    "alertSettings": {
      "type": "object",
      "metadata": {
        "description": "The alert settings object used for deploying the automation"
      }
    }
  },
  "variables": {
    "automationDescription": "automation description for subscription {0}",
    "scopeDescription": "automation scope for subscription {0}"
  },
  "resources": [
    {
      "type": "Microsoft.Security/automations",
      "apiVersion": "2019-01-01-preview",
      "name": "[parameters('automationName')]",
      "location": "[parameters('location')]",
      "properties": {
        "description": "[format(variables('automationDescription'), parameters('subscriptionId'))]",
        "isEnabled": true,
        "actions": [
          {
            "actionType": "LogicApp",
            "logicAppResourceId": "[resourceId('Microsoft.Logic/workflows', parameters('logicAppName'))]",
            "uri": "[listCallbackURL(resourceId(parameters('subscriptionId'), parameters('logicAppResourceGroupName'), 'Microsoft.Logic/workflows/triggers', parameters('logicAppName'), 'manual'), '2019-05-01').value]"
          }
        ],
        "scopes": [
          {
            "description": "[format(variables('scopeDescription'), parameters('subscriptionId'))]",
            "scopePath": "[subscription().id]"
          }
        ],
        "sources": [
          {
            "copy": [
              {
                "name": "ruleSets",
                "count": "[length(range(0, length(parameters('alertSettings').alertSeverityMapping)))]",
                "input": {
                  "rules": [
                    {
                      "propertyJPath": "[parameters('alertSettings').alertSeverityMapping[range(0, length(parameters('alertSettings').alertSeverityMapping))[copyIndex('ruleSets')]].jpath]",
                      "propertyType": "String",
                      "expectedValue": "[parameters('alertSettings').alertSeverityMapping[range(0, length(parameters('alertSettings').alertSeverityMapping))[copyIndex('ruleSets')]].expectedValue]",
                      "operator": "[parameters('alertSettings').alertSeverityMapping[range(0, length(parameters('alertSettings').alertSeverityMapping))[copyIndex('ruleSets')]].operator]"
                    },
                    {
                      "propertyJPath": "Severity",
                      "propertyType": "String",
                      "expectedValue": "[parameters('alertSettings').alertSeverityMapping[range(0, length(parameters('alertSettings').alertSeverityMapping))[copyIndex('ruleSets')]].severity]",
                      "operator": "Equals"
                    }
                  ]
                }
              }
            ],
            "eventSource": "Alerts"
          }
        ]
      }
    }
  ]
}

Recursos relevantes

Para obter outros modelos de início rápido do Defender para Nuvem, confira estas contribuições de modelos da comunidade.

Implantar o modelo

  • PowerShell:

    New-AzResourceGroup -Name <resource-group-name> -Location <resource-group-location> #use this command when you need to create a new resource group for your deployment
    New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.security/securitycenter-create-automation-for-alertnamecontains/azuredeploy.json
    
  • CLI:

    az group create --name <resource-group-name> --location <resource-group-location> #use this command when you need to create a new resource group for your deployment
    az deployment group create --resource-group <my-resource-group> --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.security/securitycenter-create-automation-for-alertnamecontains/azuredeploy.json
    
  • Portal:

    Botão para implantar o modelo do Resource Manager no Azure.

    Para encontrar mais informações sobre essa opção de implantação, confira Usar um botão de implantação para implantar modelos por meio do repositório GitHub.

Examinar os recursos implantados

Use o portal do Azure para verificar se a automação de fluxo de trabalho foi implantada.

  1. Entre no portal do Azure.

  2. Pesquise pelo Microsoft Defender para Nuvem e selecione-o.

  3. Selecione filtrar.

  4. Selecione a assinatura específica na qual você implantou a nova automação de fluxo de trabalho.

  5. No menu do Microsoft Defender para Nuvem, abra Automação de fluxo de trabalho e verifique a nova automação. Lista de automações configuradas.

    Dica

    Caso você tenha muitas automações de fluxo de trabalho na sua assinatura, use a opção filtrar por nome.

Limpar os recursos

Quando a automação de fluxo de trabalho não for mais necessária, exclua-a usando o portal do Azure.

  1. Entre no portal do Azure.

  2. Pesquise pelo Microsoft Defender para Nuvem e selecione-o.

  3. Selecione filtrar.

  4. Selecione a assinatura específica na qual você implantou a nova automação de fluxo de trabalho.

  5. No menu do Microsoft Defender para Nuvem, abra Automação de fluxo de trabalho e localize a automação a ser excluída. Etapas para remover uma automação de fluxo de trabalho.

  6. Marque a caixa de seleção do item a ser excluído.

  7. Na barra de ferramentas, selecione Excluir.

Tutorial do Bicep

O Bicep é um DSL (linguagem específica de domínio) que usa sintaxe declarativa para implantar recursos do Azure. Ele fornece sintaxe concisa, segurança de tipos confiável e suporte para reutilização de código. O Bicep oferece a melhor experiência de criação para suas soluções de infraestrutura como código no Azure.

Examinar o arquivo Bicep

O arquivo Bicep usado neste guia de início rápido vem dos Modelos de início rápido do Azure.

@minLength(3)
@maxLength(24)
param automationName string

@description('Location for the automation')
param location string = resourceGroup().location

@minLength(3)
param logicAppName string

@minLength(3)
param logicAppResourceGroupName string

@description('The Azure resource GUID id of the subscription')
param subscriptionId string = subscription().subscriptionId

@description('The alert settings object used for deploying the automation')
param alertSettings object

var automationDescription = 'automation description for subscription {0}'
var scopeDescription = 'automation scope for subscription {0}'

resource automation 'Microsoft.Security/automations@2019-01-01-preview' = {
  name: automationName
  location: location
  properties: {
    description: format(automationDescription, subscriptionId)
    isEnabled: true
    actions: [
      {
        actionType: 'LogicApp'
        logicAppResourceId: resourceId('Microsoft.Logic/workflows', logicAppName)
        uri: listCallbackURL(resourceId(subscriptionId, logicAppResourceGroupName, 'Microsoft.Logic/workflows/triggers', logicAppName, 'manual'), '2019-05-01').value
      }
    ]
    scopes: [
      {
        description: format(scopeDescription, subscriptionId)
        scopePath: subscription().id
      }
    ]
    sources: [
      {
        eventSource: 'Alerts'
        ruleSets: [for j in range(0, length(alertSettings.alertSeverityMapping)): {
          rules: [
            {
              propertyJPath: alertSettings.alertSeverityMapping[j].jpath
              propertyType: 'String'
              expectedValue: alertSettings.alertSeverityMapping[j].expectedValue
              operator: alertSettings.alertSeverityMapping[j].operator
            }
            {
              propertyJPath: 'Severity'
              propertyType: 'String'
              expectedValue: alertSettings.alertSeverityMapping[j].severity
              operator: 'Equals'
            }
          ]
        }]
      }
    ]
  }
}

Recursos relevantes

Para obter outros modelos de início rápido do Defender para Nuvem, confira estas contribuições de modelos da comunidade.

Implante o arquivo Bicep

  1. Salve o arquivo Bicep como main.bicep em seu computador local.

  2. Para implantar o arquivo Bicep, use a CLI do Azure ou o Azure PowerShell.

    az group create --name exampleRG --location eastus
    az deployment group create --resource-group exampleRG --template-file main.bicep --parameters automationName=<automation-name> logicAppName=<logic-name> logicAppResourceGroupName=<group-name> alertSettings={alert-settings}
    

    Você precisa inserir os seguintes parâmetros:

    • automationName: substitua< o nome> da automação pelo nome da automação. Tem um comprimento mínimo de três caracteres e um comprimento máximo de 24 caracteres.
    • logicAppName: substitua <o nome> lógico pelo nome do aplicativo lógico. Tem um comprimento mínimo de três caracteres.
    • logicAppResourceGroupName: substitua <group-name> pelo nome do grupo de recursos no qual os recursos estão localizados. Tem um comprimento mínimo de três caracteres.
    • alertSettings: substitua {alert-settings} pelo objeto de configurações de alerta usado para implantar a automação.

    Observação

    Quando a implantação for concluída, você deverá ver uma mensagem indicando que ela foi bem-sucedida.

Examinar os recursos implantados

Use o portal do Azure, a CLI do Azure ou o Azure PowerShell para listar os recursos implantados no grupo de recursos.

az resource list --resource-group exampleRG

Limpar os recursos

Quando o grupo de recursos e todos os respectivos recursos não forem mais necessários, use o portal do Azure, a CLI do Azure ou o Azure PowerShell para excluí-los.

az group delete --name exampleRG

Próximas etapas

Para tutoriais passo a passo que o orientam no processo de criação de um modelo ARM ou um arquivo Bicep, consulte: