Alerta sobre as atribuições de função com privilégios do Azure

As funções com privilégios do Azure, como Colaborador, Proprietário ou Administrador de Acesso do Usuário, são funções importantes e podem apresentar riscos para o sistema. Pode ser conveniente que você seja notificado por email ou mensagem de texto, quando essas ou outras funções forem atribuídas. Este artigo descreve como ser notificado sobre as atribuições de função com privilégios em um escopo de assinatura, criando uma regra de alerta por meio do Azure Monitor.

Pré-requisitos

Para criar uma regra de alerta, você deve ter:

  • Acesso a uma assinatura do Azure
  • Permissão para criar grupos de recursos e recursos na assinatura
  • Log Analytics configurado para que tenha acesso à tabela AzureActivity

Estimar os custos antes de usar o Azure Monitor

Há um custo associado ao uso do Azure Monitor e das regras de alerta. O custo é baseado na frequência em que a consulta é executada e nas notificações selecionadas. Para saber mais, confira Preço do Azure Monitor.

Criar uma regra de alerta

Para ser notificado sobre as atribuições de função com privilégios, crie uma regra de alerta no Azure Monitor.

  1. Entre no portal do Azure.

  2. Navegue até Monitoramento.

  3. No painel de navegação à esquerda, clique em Alertas.

  4. Clique em Criar>Regra de Alerta. A página Criar uma regra de alerta será aberta.

  5. Na guia Escopo, selecione a assinatura.

  6. Na guia Condição, selecione o nome de sinal da Pesquisa de log personalizada.

  7. No campo Consulta de log, adicione a seguinte consulta Kusto que será executada no log da assinatura e disparará o alerta.

    Essa consulta filtra as tentativas de atribuir as funções Colaborador, Proprietário ou Administrador de Acesso do Usuário no escopo da assinatura selecionada.

    AzureActivity
    | where CategoryValue =~ "Administrative" and
        OperationNameValue =~ "Microsoft.Authorization/roleAssignments/write" and
        (ActivityStatusValue =~ "Start" or ActivityStatus =~ "Started")
    | extend Properties_d = todynamic(Properties)
    | extend RoleDefinition = extractjson("$.Properties.RoleDefinitionId",tostring(Properties_d.requestbody),typeof(string))
    | extend PrincipalId = extractjson("$.Properties.PrincipalId",tostring(Properties_d.requestbody),typeof(string))
    | extend PrincipalType = extractjson("$.Properties.PrincipalType",tostring(Properties_d.requestbody),typeof(string))
    | extend Scope = extractjson("$.Properties.Scope",tostring(Properties_d.requestbody),typeof(string))
    | where Scope !contains "resourcegroups"
    | extend RoleId = split(RoleDefinition,'/')[-1]
    | extend RoleDisplayName = case(
        RoleId =~ 'b24988ac-6180-42a0-ab88-20f7382dd24c', "Contributor",
        RoleId =~ '8e3af657-a8ff-443c-a75c-2fe8c4bcb635', "Owner",
        RoleId =~ '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9', "User Access Administrator",
        "Irrelevant")
    | where RoleDisplayName != "Irrelevant"
    | project TimeGenerated,Scope, PrincipalId,PrincipalType,RoleDisplayName
    

    Screenshot of Create an alert rule condition tab in Azure Monitor.

  8. Na seção Medida, defina os seguintes valores:

    • Medida: linhas de tabela
    • Tipo de agregação: contagem
    • Granularidade de agregação: 5 minutos

    Em Granularidade de agregação, você pode alterar o valor padrão para uma frequência desejada.

  9. Na seção Dividir por dimensões, defina a coluna ID do Recurso como Não dividir.

  10. Na seção Lógica de Alerta, defina os seguintes valores:

    • Operador: maior que
    • Valor do limite: 0
    • Frequência de avaliação: 5 minutos

    Em Frequência de avaliação, você pode alterar o valor padrão para uma frequência desejada.

  11. Na guia Ações, crie um grupo de ações ou selecione um grupo de ações existente.

    Um grupo de ações define as ações e as notificações executadas quando o alerta é disparado.

    Ao criar um grupo de ações, você deve especificar o grupo de recursos em que o grupo de ações deve ser colocado. Selecione as notificações (Mensagem de email/SMS/Push/Ação de voz) a serem invocadas quando a regra de alerta for disparada. Você pode ignorar as guias Ações e Marcas. Para obter mais informações, consulte Criar e gerenciar grupos de ações no portal do Azure.

  12. Na guia Detalhes, selecione o grupo de recursos para salvar a regra de alerta.

  13. Na seção Detalhes da regra de alerta, selecione a Gravidade e especifique um Nome de regra de alerta.

  14. Em Região, você pode selecionar qualquer região, já que os logs de atividades do Azure são globais.

  15. Ignore a guia Marcas.

  16. Na guia Examinar e criar, clique em Criar para criar a regra de alerta.

Testar a regra de alerta

Depois de criar uma regra de alerta, você pode testar se ela é disparada.

  1. Atribua a função Colaborador, Proprietário ou Administrador de Acesso do Usuário no escopo da assinatura. Para obter mais informações, confira Atribuir funções do Azure usando o portal do Azure.

  2. Aguarde alguns minutos para receber o alerta de acordo com a granularidade de agregação e a frequência de avaliação da consulta de log.

  3. Na página Alertas, monitore o alerta especificado no grupo de ações.

    Screenshot of the Alerts page showing that role assignment alert fired.

    A imagem a seguir mostra um exemplo do alerta de email.

    Screenshot of an email alert for a role assignment.

Excluir a regra de alerta

Siga estas etapas para excluir a regra de alerta de atribuição de função e impedir custos adicionais.

  1. Em Monitoramento, navegue até Alertas.

  2. Na barra, clique em Regras de alerta.

  3. Adicione um sinal de confirmação ao lado da regra de alerta que você deseja excluir.

  4. Clique em Excluir para remover o alerta.

Próximas etapas