Roles, permisos y seguridad en Azure Monitor

En este artículo se explica cómo aplicar rápidamente un rol de supervisión integrado a un usuario en Azure o crear un rol personalizado propio para un usuario que necesita permisos de supervisión limitados. En el artículo después se describen las consideraciones de seguridad para los recursos relacionados con Azure Monitor y cómo puede limitar el acceso a los datos que contienen.

Roles de supervisión integrados

Los roles integrados en Azure Monitor le permiten limitar el acceso a recursos de una suscripción, sin impedir que los responsables de supervisión de la infraestructura obtengan y configuren los datos que necesitan. Azure Monitor proporciona dos roles de fábrica: un lector de supervisión y un colaborador de supervisión. Los registros de Azure Monitor también proporcionan roles integrados para administrar el acceso a los datos de un área de trabajo de Log Analytics, tal como se describe en Administración del acceso a las áreas de trabajo de Log Analytics.

Lector de supervisión

Las personas asignadas al rol Lector de supervisión pueden ver todos los datos de supervisión en una suscripción, pero no pueden modificar ningún recurso ni editar ninguna configuración relacionada con la supervisión de recursos. Este rol es adecuado para los usuarios de una organización, como los ingenieros de soporte técnico u operaciones que necesitan tener la capacidad de:

  • Ver los paneles de supervisión de Azure Portal.
  • Ver las reglas de alerta definidas en Alertas de Azure.
  • Consultar las métricas de Azure Monitor mediante la API REST de Azure Monitor, los cmdlets de PowerShell o la CLI multiplataforma.
  • Consultar el registro de actividades a través del portal, la API REST de Azure Monitor, los cmdlets de PowerShell o la CLI multiplataforma.
  • Ver la configuración de diagnóstico de un recurso.
  • Ver el perfil de registro de una suscripción.
  • Consultar la configuración de escalado automático.
  • Consultar la configuración y actividad de alertas.
  • Buscar datos del área de trabajo de Log Analytics, incluidos los datos de uso del área de trabajo.
  • Recuperar esquemas de tabla en un área de trabajo de Log Analytics.
  • Recuperar y ejecutar las consultas de registros en un área de trabajo de Log Analytics.
  • Acceda a los datos de Application Insights.

Nota:

Este rol no otorga acceso de lectura a los datos de registro que se han transmitido a un centro de eventos o que están almacenados en una cuenta de almacenamiento. Para obtener información sobre cómo configurar el acceso a estos recursos, consulte la sección Consideraciones de seguridad para datos de supervisión más adelante en este artículo.

Colaborador de supervisión

Las personas que tienen asignado el rol Colaborador de supervisión pueden ver todos los datos de supervisión de una suscripción. También pueden crear o modificar la configuración de supervisión, pero no pueden modificar ningún otro recurso.

Este rol es un superconjunto del rol Lector de supervisión. Es adecuado para los miembros del equipo de supervisión de una organización o los proveedores de servicios administrados que, además de los permisos mencionados anteriormente, deben poder:

  • Ver paneles de supervisión en el portal y crear sus propios paneles de supervisión privados.
  • Crear y editar la configuración de diagnóstico de un recurso. 1
  • Establecer la configuración y la actividad de las reglas de alertas mediante Alertas de Azure.
  • Enumerar las claves compartidas de un área de trabajo de Log Analytics.
  • Crear, eliminar y ejecutar las búsquedas guardadas en el área de trabajo de Log Analytics.
  • Crear y eliminar la configuración de almacenamiento del área de trabajo de Log Analytics.
  • Crear componentes y pruebas web de Application Insights. Consulte Recursos, roles y control de acceso en Application Insights.

1 Para crear o editar una configuración del diagnóstico, al usuario también se le debe conceder el permiso ListKeys por separado en el recurso de destino (cuenta de almacenamiento o espacio de nombres del centro de eventos).

Nota:

Este rol no otorga acceso de lectura a los datos de registro que se han transmitido a un centro de eventos o que están almacenados en una cuenta de almacenamiento. Para obtener información sobre cómo configurar el acceso a estos recursos, consulte la sección Consideraciones de seguridad para datos de supervisión más adelante en este artículo.

Permisos de supervisión y roles de Azure personalizados

Si los roles integrados anteriores no satisfacen las necesidades exactas de su equipo, puede crear un rol de Azure personalizado con permisos más granulares. Las operaciones comunes de control de acceso basado en roles (RBAC) de Azure para Azure Monitor se enumeran aquí.

Operación Descripción
Microsoft.Insights/ActionGroups/[Read, Write, Delete] Leer, escribir o eliminar grupos de acciones.
Microsoft.Insights/ActivityLogAlerts/[Read, Write, Delete] Leer, escribir o eliminar alertas del registro de actividad.
Microsoft.Insights/AlertRules/[Read, Write, Delete] Leer, escribir o eliminar reglas de alertas (de alertas clásicas).
Microsoft.Insights/AlertRules/Incidents/Read Enumerar los incidentes (historial de la regla de alerta desencadenada) de reglas de alerta. Esto solo se aplica solo al portal.
Microsoft.Insights/AutoscaleSettings/[Read, Write, Delete] Leer, escribir o eliminar la configuración de escalado automático.
Microsoft.Insights/DiagnosticSettings/[Read, Write, Delete] Leer, escribir o eliminar la configuración de diagnóstico.
Microsoft.Insights/EventCategories/Read Enumerar todas las categorías posibles en el registro de actividad. Lo utiliza Azure Portal.
Microsoft.Insights/eventtypes/digestevents/Read Este permiso es necesario para los usuarios que necesitan acceder a registros de actividades a través del portal.
Microsoft.Insights/eventtypes/values/Read Enumerar eventos del registro de actividades (eventos de administración) de una suscripción. Este permiso es aplicable para el acceso mediante programación y mediante el portal al registro de actividades.
Microsoft.Insights/ExtendedDiagnosticSettings/[Read, Write, Delete] Leer, escribir o eliminar configuración de diagnóstico para registros de flujo de red.
Microsoft.Insights/LogDefinitions/Read Este permiso es necesario para los usuarios que necesitan acceder a registros de actividades a través del portal.
Microsoft.Insights/LogProfiles/[Read, Write, Delete] Leer, escribir o eliminar perfiles de registro (transmisión del registro de actividad a un centro de eventos o una cuenta de almacenamiento).
Microsoft.Insights/MetricAlerts/[Read, Write, Delete] Leer, escribir o eliminar reglas de alertas de métricas.
Microsoft.Insights/MetricDefinitions/Read Leer definiciones de métrica (lista de tipos de métricas disponibles para un recurso).
Microsoft.Insights/Metrics/Read Leer las métricas de un recurso.
Microsoft.Insights/Register/Action Registrar el proveedor de recursos de Azure Monitor.
Microsoft.Insights/ScheduledQueryRules/[Read, Write, Delete] Leer, escribir o eliminar alertas de búsqueda de registros en Azure Monitor.

Nota:

El acceso a las alertas, la configuración de diagnóstico y las métricas de un recurso requiere que el usuario tenga acceso de lectura al tipo de recurso y el ámbito de ese recurso. La creación de una configuración de diagnóstico que envía datos a una cuenta de almacenamiento o transmite a centros de eventos requiere que el usuario tenga también el permiso ListKeys en el recurso de destino.

Por ejemplo, puede usar la tabla anterior para crear un rol personalizado de Azure para un lector del registro de actividad con lo siguiente:

$role = Get-AzRoleDefinition "Reader"
$role.Id = $null
$role.Name = "Activity Log Reader"
$role.Description = "Can view activity logs."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Insights/eventtypes/*")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/mySubscription")
New-AzRoleDefinition -Role $role 

Consideraciones de seguridad para datos de supervisión

Los Datos en Azure Monitorse pueden almacenar en una cuenta de almacenamiento o transmitirse a un centro de eventos, y ambos son recursos de Azure de uso general. Dado que son recursos de uso general, su creación, eliminación o el acceso a ellos constituyen una operación privilegiada reservada a un administrador. Dado que estos datos pueden contener información confidencial, como direcciones IP o nombres de usuario, use los procedimientos siguientes para supervisar los recursos relacionados con la supervisión para evitar el uso indebido:

  • Utilizar una cuenta de almacenamiento dedicada a datos de supervisión. Si necesita separar los datos de supervisión en varias cuentas de almacenamiento, nunca comparta el uso de una cuenta de almacenamiento entre los datos de supervisión y de otro tipo. Este uso compartido podría conceder acceso accidentalmente a datos no relacionados con la supervisión a organizaciones que solo necesitan tener acceso a datos de supervisión. Por ejemplo, una organización de terceros para la administración de eventos e información de seguridad solo debe tener acceso a los datos de supervisión.
  • Utilice un único espacio de nombres dedicado de un bus de servicio o un centro de eventos en todas las configuraciones de diagnóstico por la misma razón descrita en el punto anterior.
  • Limite el acceso a las cuentas de almacenamiento o los centros de eventos relacionados con la supervisión manteniéndolos en un grupo de recursos separado. Use el ámbito en los roles de supervisión para limitar el acceso solo a ese grupo de recursos.
  • No conceda nunca el permiso ListKeys para las cuentas de almacenamiento o los centros de eventos en el ámbito de la suscripción cuando un usuario solo necesita acceso a los datos de supervisión. En su lugar, conceda estos permisos al usuario en un ámbito de recurso o grupo de recursos (si tiene un grupo de recursos de supervisión dedicado).

Cuando un usuario o aplicación necesita acceso a datos de supervisión en una cuenta de almacenamiento, debe generar una firma de acceso compartido (SAS) en la cuenta de almacenamiento que contenga los datos de supervisión con acceso de solo lectura de nivel de servicio a Blob Storage. En PowerShell, la SAS de la cuenta podría ser como el código siguiente:

$context = New-AzStorageContext -ConnectionString "[connection string for your monitoring Storage Account]"
$token = New-AzStorageAccountSASToken -ResourceType Service -Service Blob -Permission "rl" -Context $context

A continuación, puede proporcionar el token a la entidad que necesita leer de esa cuenta de almacenamiento. La entidad puede enumerar y leer todos los blobs de esa cuenta de almacenamiento.

O bien, si necesita controlar este permiso con Azure RBAC, puede conceder a dicha entidad el permiso Microsoft.Storage/storageAccounts/listkeys/action para esa cuenta de almacenamiento determinada. Este permiso es necesario para los usuarios que necesitan definir una configuración de diagnóstico para enviar datos a una cuenta de almacenamiento. Por ejemplo, puede crear el siguiente rol de Azure personalizado para un usuario o una aplicación que solo necesita leer desde una cuenta de almacenamiento:

$role = Get-AzRoleDefinition "Reader"
$role.Id = $null
$role.Name = "Monitoring Storage Account Reader"
$role.Description = "Can get the storage account keys for a monitoring storage account."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Storage/storageAccounts/listkeys/action")
$role.Actions.Add("Microsoft.Storage/storageAccounts/Read")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myMonitoringStorageAccount")
New-AzRoleDefinition -Role $role 

Advertencia

El permiso ListKeys permite al usuario enumerar las claves de la cuenta de almacenamiento principal y secundaria. Estas claves conceden al usuario todos los permisos firmados (como leer, escribir, crear blobs y eliminar blobs) en todos los servicios suscritos (blob, cola, tabla y archivo) en esa cuenta de almacenamiento. Se recomienda usar una SAS de cuenta cuando sea posible.

Puede seguir un patrón similar con los centros de eventos, pero primero debe crear una regla de autorización dedicada para la escucha. Si quiere conceder acceso a una aplicación que solo necesita escuchar a centros de eventos relacionados con la supervisión, haga lo siguiente:

  1. En el portal, cree una directiva de acceso compartido en los centros de eventos que se crearon para la transmisión de datos de supervisión con notificaciones de escucha exclusivamente. Por ejemplo, podría llamarlo "monitoringReadOnly". Si es posible, dé esa clave directamente al consumidor y omita el paso siguiente.

  2. Si el consumidor quiere tener la capacidad de obtener la clave ad hoc, conceda al usuario la acción ListKeys para ese centro de eventos. Este paso es necesario para los usuarios que necesitan definir una configuración de diagnóstico o un perfil de registro para realizar transmisiones a los centros de eventos. Por ejemplo, podría crear una regla de Azure RBAC:

    $role = Get-AzRoleDefinition "Reader"
    $role.Id = $null
    $role.Name = "Monitoring Event Hub Listener"
    $role.Description = "Can get the key to listen to an event hub streaming monitoring data."
    $role.Actions.Clear()
    $role.Actions.Add("Microsoft.EventHub/namespaces/authorizationrules/listkeys/action")
    $role.Actions.Add("Microsoft.EventHub/namespaces/Read")
    $role.AssignableScopes.Clear()
    $role.AssignableScopes.Add("/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.ServiceBus/namespaces/mySBNameSpace")
    New-AzRoleDefinition -Role $role 
    

Pasos siguientes