Roller, behörigheter och säkerhet i Azure Monitor

Den här artikeln visar hur du snabbt tillämpar en inbyggd övervakningsroll på en användare i Azure eller skapar en egen anpassad roll för en användare som behöver begränsade övervakningsbehörigheter. I artikeln beskrivs sedan säkerhetsöverväganden för dina Azure Monitor-relaterade resurser och hur du kan begränsa åtkomsten till data i dessa resurser.

Inbyggda övervakningsroller

Inbyggda roller i Azure Monitor hjälper till att begränsa åtkomsten till resurser i en prenumeration samtidigt som personalen som övervakar infrastrukturen kan hämta och konfigurera de data de behöver. Azure Monitor har två färdiga roller: övervakningsläsare och övervakningsdeltagare. Azure Monitor-loggar innehåller också inbyggda roller för att hantera åtkomst till data på en Log Analytics-arbetsyta, enligt beskrivningen i Hantera åtkomst till Log Analytics-arbetsytor.

Övervakningsläsare

Personer som har tilldelats övervakningsläsarrollen kan visa alla övervakningsdata i en prenumeration men kan inte ändra någon resurs eller redigera inställningar som rör övervakningsresurser. Den här rollen är lämplig för användare i en organisation, till exempel support- eller drifttekniker, som behöver:

  • Visa övervakningsinstrumentpaneler i Azure-portalen.
  • Visa aviseringsregler som definierats i Azure-aviseringar.
  • Fråga Azure Monitor-mått med hjälp av Azure Monitor REST API, PowerShell-cmdletar eller plattformsoberoende CLI.
  • Fråga aktivitetsloggen med hjälp av portalen, Azure Monitor REST API, PowerShell-cmdletar eller plattformsoberoende CLI.
  • Visa diagnostikinställningarna för en resurs.
  • Visa loggprofilen för en prenumeration.
  • Visa inställningar för autoskalning.
  • Visa aviseringsaktivitet och inställningar.
  • Sök efter Log Analytics-arbetsytedata, inklusive användningsdata för arbetsytan.
  • Hämta tabellscheman på en Log Analytics-arbetsyta.
  • Hämta och köra loggfrågor på en Log Analytics-arbetsyta.
  • Få åtkomst till Application Insights-data.

Kommentar

Den här rollen ger inte läsåtkomst till loggdata som har strömmats till en händelsehubb eller lagrats i ett lagringskonto. Information om hur du konfigurerar åtkomst till dessa resurser finns i avsnittet Säkerhetsöverväganden för övervakning av data senare i den här artikeln.

Övervakningsdeltagare

Personer som har tilldelats övervakningsdeltagarrollen kan visa alla övervakningsdata i en prenumeration. De kan också skapa eller ändra övervakningsinställningar, men de kan inte ändra några andra resurser.

Den här rollen är en superuppsättning av rollen Övervakningsläsare. Det är lämpligt för medlemmar i en organisations övervakningsteam eller leverantörer av hanterade tjänster som utöver de behörigheter som nämnts tidigare behöver:

  • Visa övervakningsinstrumentpaneler i portalen och skapa egna privata övervakningsinstrumentpaneler.
  • Skapa och redigera diagnostikinställningar för en resurs. 1
  • Ange aktivitet och inställningar för aviseringsregeln med hjälp av Azure-aviseringar.
  • Visa en lista över delade nycklar för en Log Analytics-arbetsyta.
  • Skapa, ta bort och köra sparade sökningar på en Log Analytics-arbetsyta.
  • Skapa och ta bort lagringskonfigurationen för arbetsytan för Log Analytics.
  • Skapa webbtester och komponenter för Application Insights. Se Resurser, roller och åtkomstkontroll i Application Insights.

1 Om du vill skapa eller redigera en diagnostikinställning måste användarna också beviljas ListKeys-behörighet separat för målresursen (lagringskontot eller händelsehubbens namnområde).

Kommentar

Den här rollen ger inte läsåtkomst till loggdata som har strömmats till en händelsehubb eller lagrats i ett lagringskonto. Information om hur du konfigurerar åtkomst till dessa resurser finns i avsnittet Säkerhetsöverväganden för övervakning av data senare i den här artikeln.

Övervaka behörigheter och anpassade Azure-roller

Om de föregående inbyggda rollerna inte uppfyller teamets exakta behov kan du skapa en anpassad Azure-roll med mer detaljerade behörigheter. De vanliga rollbaserade åtkomstkontrollåtgärderna i Azure (RBAC) för Azure Monitor visas här.

Operation beskrivning
Microsoft.Insights/ActionGroups/[Read, Write, Delete] Läsa, skriva eller ta bort åtgärdsgrupper.
Microsoft.Insights/ActivityLogAlerts/[Read, Write, Delete] Läsa, skriva eller ta bort aktivitetsloggaviseringar.
Microsoft.Insights/AlertRules/[Read, Write, Delete] Läsa, skriva eller ta bort aviseringsregler (från klassiska aviseringar).
Microsoft.Insights/AlertRules/Incidents/Read Lista incidenter (historik för aviseringsregeln som utlöses) för aviseringsregler. Detta gäller endast för portalen.
Microsoft.Insights/Autoscale Inställningar/[Read, Write, Delete] Läsa, skriva eller ta bort autoskalningsinställningar.
Microsoft.Insights/Diagnostic Inställningar/[Read, Write, Delete] Läsa, skriva eller ta bort diagnostikinställningar.
Microsoft.Insights/EventCategories/Read Räkna upp alla kategorier som är möjliga i aktivitetsloggen. Används av Azure-portalen.
Microsoft.Insights/eventtypes/digestevents/Read Den här behörigheten är nödvändig för användare som behöver åtkomst till aktivitetsloggen via portalen.
Microsoft.Insights/eventtypes/values/Read Visa en lista över aktivitetslogghändelser (hanteringshändelser) i en prenumeration. Den här behörigheten gäller både programmatisk och portalåtkomst till aktivitetsloggen.
Microsoft.Insights/ExtendedDiagnostic Inställningar/[Read, Write, Delete] Läsa, skriva eller ta bort diagnostikinställningar för nätverksflödesloggar.
Microsoft.Insights/LogDefinitions/Read Den här behörigheten är nödvändig för användare som behöver åtkomst till aktivitetsloggen via portalen.
Microsoft.Insights/LogProfiles/[Read, Write, Delete] Läsa, skriva eller ta bort loggprofiler (strömma aktivitetsloggen till en händelsehubb eller ett lagringskonto).
Microsoft.Insights/MetricAlerts/[Read, Write, Delete] Läsa, skriva eller ta bort måttaviseringsregler.
Microsoft.Insights/MetricDefinitions/Read Läsa måttdefinitioner (lista över tillgängliga måttenhetstyper för en resurs).
Microsoft.Insights/Metrics/Read Läsa mått för en resurs.
Microsoft.Insights/Register/Action Registrera Azure Monitor-resursprovidern.
Microsoft.Insights/ScheduledQueryRules/[Read, Write, Delete] Aviseringar om läs-, skriv- eller borttagningsloggsökning i Azure Monitor.

Kommentar

Åtkomst till aviseringar, diagnostikinställningar och mått för en resurs kräver att användaren har läsbehörighet till resurstypen och resursomfånget. Om du skapar en diagnostikinställning som skickar data till ett lagringskonto eller strömmar till händelsehubbar måste användaren också ha ListKeys-behörighet för målresursen.

Du kan till exempel använda tabellen ovan för att skapa en anpassad Azure-roll för en aktivitetsloggläsare med följande:

$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 

Säkerhetsöverväganden vid övervakning av data

Data i Azure Monitor kan skickas i ett lagringskonto eller strömmas till en händelsehubb, som båda är allmänna Azure-resurser. Eftersom det här är allmänna resurser är det en privilegierad åtgärd som är reserverad för en administratör att skapa, ta bort och komma åt dem. Eftersom dessa data kan innehålla känslig information, till exempel IP-adresser eller användarnamn, använder du följande metoder för övervakningsrelaterade resurser för att förhindra missbruk:

  • Använd ett enda, dedikerat lagringskonto för övervakning av data. Om du behöver dela upp övervakningsdata i flera lagringskonton ska du aldrig dela användningen av ett lagringskonto mellan övervakningsdata och data som inte är övervakning. Att dela användning på det sättet kan oavsiktligt ge åtkomst till icke-övervakningsdata till organisationer som bara behöver åtkomst till övervakningsdata. En tredjepartsorganisation för säkerhetsinformation och händelsehantering bör till exempel bara behöva åtkomst till övervakningsdata.
  • Använd en enda dedikerad servicebuss eller händelsehubbnamnrymd i alla diagnostikinställningar av samma anledning som beskrevs i föregående punkt.
  • Begränsa åtkomsten till övervakningsrelaterade lagringskonton eller händelsehubbar genom att behålla dem i en separat resursgrupp. Använd omfånget för dina övervakningsroller för att begränsa åtkomsten till endast den resursgruppen.
  • Bevilja aldrig ListKeys-behörigheten för lagringskonton eller händelsehubbar i prenumerationsomfånget när en användare bara behöver åtkomst till övervakningsdata. Ge i stället dessa behörigheter till användaren i ett resurs- eller resursgruppsomfång (om du har en dedikerad övervakningsresursgrupp).

När en användare eller ett program behöver åtkomst till övervakningsdata i ett lagringskonto genererar du en signatur för delad åtkomst (SAS) på lagringskontot som innehåller övervakningsdata med skrivskyddad åtkomst på tjänstnivå till bloblagring. I PowerShell kan kontots SAS se ut som följande kod:

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

Du kan sedan ge token till den entitet som behöver läsas från lagringskontot. Entiteten kan lista och läsa från alla blobar i lagringskontot.

Om du behöver styra den här behörigheten med Azure RBAC kan du också ge den entiteten behörigheten Microsoft.Storage/storageAccounts/listkeys/action för det specifika lagringskontot. Den här behörigheten är nödvändig för användare som behöver ange en diagnostikinställning för att skicka data till ett lagringskonto. Du kan till exempel skapa följande anpassade Azure-roll för en användare eller ett program som bara behöver läsa från ett lagringskonto:

$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 

Varning

Med behörigheten ListKeys kan användaren lista de primära och sekundära lagringskontonycklarna. Dessa nycklar ger användaren alla signerade behörigheter (till exempel läsa, skriva, skapa blobar och ta bort blobar) för alla signerade tjänster (blob, kö, tabell, fil) i lagringskontot. Vi rekommenderar att du använder ett konto-SAS när det är möjligt.

Du kan följa ett liknande mönster med händelsehubbar, men först måste du skapa en dedikerad auktoriseringsregel för att lyssna. Om du vill bevilja åtkomst till ett program som bara behöver lyssna på övervakningsrelaterade händelsehubbar följer du dessa steg:

  1. I portalen skapar du en princip för delad åtkomst på de händelsehubbar som skapades för strömmande övervakningsdata med endast lyssnande anspråk. Du kan till exempel kalla det "monitoringReadOnly". Ge om möjligt nyckeln direkt till konsumenten och hoppa över nästa steg.

  2. Om konsumenten behöver hämta nyckeln ad hoc beviljar du användaren åtgärden ListKeys för händelsehubben. Det här steget är också nödvändigt för användare som behöver ange en diagnostikinställning eller en loggprofil för att strömma till händelsehubbar. Du kan till exempel skapa en Azure RBAC-regel:

    $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 
    

Nästa steg