Alerta sobre asignaciones de roles de Azure con privilegios

Los roles de Azure con privilegios, como Colaborador, Propietario o Administrador de acceso de usuario, son roles eficaces y pueden introducir riesgos en el sistema. Es posible que quiera recibir notificaciones por correo electrónico o mensaje de texto cuando se asignen estos u otros roles. En este artículo se describe cómo recibir notificaciones de asignaciones de roles con privilegios en un ámbito de suscripción mediante la creación de una regla de alerta con Azure Monitor.

Requisitos previos

Para crear una regla de alerta, debe tener:

  • Acceso a una suscripción de Azure
  • Permiso para crear grupos de recursos y recursos dentro de la suscripción
  • Log Analytics configurado para que tenga acceso a la tabla AzureActivity

Cálculo de costos antes de usar Azure Monitor

Hay un costo asociado al uso de Azure Monitor y las reglas de alertas. El costo se basa en la frecuencia con la que se ejecuta la consulta y las notificaciones seleccionadas. Para obtener más información, consulte Precios de Azure Monitor.

Crear una regla de alerta

Para recibir una notificación de las asignaciones de roles con privilegios, cree una regla de alerta en Azure Monitor.

  1. Inicie sesión en Azure Portal.

  2. Vaya a Supervisión.

  3. En el panel de navegación izquierdo, haga clic en Alertas.

  4. Haga clic en Crear>Regla de alerta. La página Crear una regla de alerta abre.

  5. En la pestaña Ámbito, seleccione la suscripción.

  6. En la pestaña Condición, seleccione el nombre de la señal de Búsqueda de registros personalizada.

  7. En el cuadro Consulta de registro, agregue la siguiente consulta de Kusto que se ejecutará en el registro de la suscripción y desencadenará la alerta.

    Esta consulta filtra los intentos de asignar los roles Colaborador, Propietario o Administrador de acceso de usuario en el ámbito de la suscripción seleccionada.

    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. En la sección Medida, establezca los valores siguientes:

    • Medida: filas de tabla
    • Tipo de agregación: Count
    • Granularidad de agregación: 5 minutos

    Para Granularidad de agregación, puede cambiar el valor predeterminado a la frecuencia que quiera.

  9. En la sección Dividir por dimensiones, establezca la Columna de Id. de recurso en No dividir.

  10. En la sección Lógica de alertas, establezca los valores siguientes:

    • Operador: Mayor que
    • Valor del umbral: 0
    • Frecuencia de evaluación: 5 minutos

    En Frecuencia de evaluación, puede cambiar el valor predeterminado a la frecuencia que quiera.

  11. En la pestaña Acciones, cree un grupo de acciones o seleccione un grupo de acciones existente.

    Un grupo de acciones define las acciones y las notificaciones que se ejecutan cuando se desencadena la alerta.

    Al crear un grupo de acciones, debe especificar el grupo de recursos en el que colocar el grupo de acciones. A continuación, seleccione las notificaciones (acción de correo electrónico/mensaje SMS/notificación push/voz) que se invocarán cuando se desencadene la regla de alertas. Puede omitir las pestañas Acciones y Etiquetas. Para obtener más información, consulte Crear y administrar grupos de acciones en Azure Portal.

  12. En la pestaña Detalles, seleccione el grupo de recursos para guardar la regla de alertas.

  13. En la sección Detalles de la regla de alertas, seleccione una Gravedad y especifique un Nombre de la regla de alertas.

  14. En Región, puede seleccionar cualquier región, ya que los registros de actividad de Azure son globales.

  15. Omita la pestaña Etiquetas.

  16. En la pestaña Revisar y crear, haga clic en Crear para crear la regla de alertas.

Prueba de la regla de alertas

Una vez que haya creado una regla de alertas, puede probar que se activa.

  1. Asigne el rol de Colaborador, Propietario o Administrador de acceso de usuario en el ámbito de la suscripción. Para más información, consulte Asignación de roles de Azure mediante Azure Portal.

  2. Espere unos minutos para recibir la alerta en función de la granularidad de agregación y la frecuencia de evaluación de la consulta de registro.

  3. En la página Alertas, supervise la alerta que especificó en el grupo de acciones.

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

    En la imagen siguiente se muestra un ejemplo de la alerta de correo electrónico.

    Screenshot of an email alert for a role assignment.

Eliminación de la regla de alertas

Siga estos pasos para eliminar la regla de alertas de asignación de roles y detener costos adicionales.

  1. En Supervisión, vaya a Alertas.

  2. En la barra, haga clic en Reglas de alerta.

  3. Agregue una marca de verificación junto a la regla de alerta que quiere eliminar.

  4. Haga clic en Eliminar para quitar la alerta.

Pasos siguientes