Eventos
Cree aplicaciones inteligentes
17 mar, 9 p.m. - 21 mar, 10 a.m.
Únete a la serie de encuentros para crear soluciones de IA escalables basadas en casos de uso del mundo real con otros desarrolladores y expertos.
Regístrese ahoraEste explorador ya no es compatible.
Actualice a Microsoft Edge para aprovechar las características, las actualizaciones de seguridad y el soporte técnico más recientes.
En este artículo se muestra cómo aplicar roles de supervisión del Control de acceso basado en roles (RBAC) para conceder o limitar el acceso y se describen las consideraciones de seguridad para los recursos relacionados con Azure Monitor.
El Control de acceso basado en roles de Azure (Azure RBAC) proporciona roles integrados de Azure que se pueden asignar a usuarios, grupos, entidades de servicio e identidades administradas. Los roles más comunes son Lector de supervisión y Colaborador de supervisión para permisos de lectura y escritura, respectivamente.
Para obtener información más detallada sobre los roles de supervisión, consulte Roles de supervisión de RBAC.
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:
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.
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:
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.
Si los roles integrados no satisfacen las necesidades de su equipo, puede crear un rol personalizado de Azure con permisos granulares.
Por ejemplo, puede usar permisos pormenorizados para crear un rol personalizado de Azure para un lector de registro de actividad con el siguiente script de PowerShell.
$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
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.
Nota
Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Para asignar un rol, consulte Asignación de roles de Azure mediante Azure PowerShell.
Por ejemplo, el siguiente script de PowerShell asigna un rol a un usuario especificado.
Reemplace <RoleId>
por el Id. Rol de supervisión de RBAC que desea asignar.
Reemplace <SubscriptionID>
, <ResourceGroupName>
y <UserPrincipalName>
por los valores adecuados para su entorno.
# Define variables
$SubscriptionId = "<SubscriptionID>"
$ResourceGroupName = "<ResourceGroupName>"
$UserPrincipalName = "<UserPrincipalName>" # The UPN of the user to whom you want to assign the role
$RoleId = "<RoleId>" # The ID of the role
# Get the user object
$User = Get-AzADUser -UserPrincipalName $UserPrincipalName
# Define the scope (e.g., subscription or resource group level)
$Scope = "/subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupName"
# Assign the role
New-AzRoleAssignment -ObjectId $User.Id -RoleDefinitionId $RoleId -Scope $Scope
También puede Asignar roles de Azure mediante Azure Portal.
Importante
Puede resultar útil generar listas de usuarios que pertenecen a un rol determinado. Para ayudar con la generación de estos tipos de listas, las siguientes consultas de ejemplo pueden adaptarse a sus necesidades específicas.
(Get-AzRoleAssignment -IncludeClassicAdministrators | Where-Object {$_.RoleDefinitionName -in @('ServiceAdministrator', 'CoAdministrator', 'Owner', 'Contributor') } | Select -ExpandProperty SignInName | Sort-Object -Unique) -Join ", "
$resourceGroup = "ResourceGroupName"
$resourceName = "AppInsightsName"
$resourceType = "microsoft.insights/components"
(Get-AzRoleAssignment -ResourceGroup $resourceGroup -ResourceType $resourceType -ResourceName $resourceName | Where-Object {$_.RoleDefinitionName -in @('Owner', 'Contributor') } | Select -ExpandProperty SignInName | Sort-Object -Unique) -Join ", "
$resourceGroup = "ResourceGroupName"
(Get-AzRoleAssignment -ResourceGroup $resourceGroup | Where-Object {$_.RoleDefinitionName -in @('Owner', 'Contributor') } | Select -ExpandProperty SignInName | Sort-Object -Unique) -Join ", "
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. Al ser recursos de uso general, su creación, eliminación o el acceso a ellos constituye 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:
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:
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.
Si el consumidor necesita obtener la clave a petición, 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
Eventos
Cree aplicaciones inteligentes
17 mar, 9 p.m. - 21 mar, 10 a.m.
Únete a la serie de encuentros para crear soluciones de IA escalables basadas en casos de uso del mundo real con otros desarrolladores y expertos.
Regístrese ahoraFormación
Módulo
Descubra cómo usar el control de acceso basado en rol de Azure para administrar de forma eficaz el acceso de su equipo a los recursos de Azure.
Certificación
Microsoft Certified: Azure Administrator Associate - Certifications
Demostrar aptitudes clave para configurar, proteger y administrar funciones profesionales clave en Microsoft Azure.