Delen via


Rollen, machtigingen en beveiliging in Azure Monitor

In dit artikel wordt beschreven hoe u op rollen gebaseerd toegangsbeheer (RBAC) kunt toepassen om toegang te verlenen of te beperken en beveiligingsoverwegingen voor uw Azure Monitor-gerelateerde resources kunt bespreken.

Ingebouwde bewakingsrollen

Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) biedt ingebouwde rollen voor bewaking die u kunt toewijzen aan gebruikers, groepen, service-principals en beheerde identiteiten. De meest voorkomende rollen zijn bewakingslezer en controlebijdrager voor respectievelijk lees- en schrijfmachtigingen.

Zie RBAC-bewakingsrollen voor meer informatie over de bewakingsrollen.

Lezer voor bewaking

Personen aan wie de rol Bewakingslezer is toegewezen, kunnen alle bewakingsgegevens in een abonnement bekijken, maar ze kunnen geen resource wijzigen of instellingen bewerken die betrekking hebben op bewakingsresources. Deze rol is geschikt voor gebruikers in een organisatie, zoals ondersteunings- of operationele technici, die het volgende moeten doen:

  • Bewakingsdashboards weergeven in Azure Portal.
  • Waarschuwingsregels weergeven die zijn gedefinieerd in Azure-waarschuwingen.
  • Query's uitvoeren op metrische gegevens van Azure Monitor met behulp van de Azure Monitor REST API, PowerShell-cmdlets of platformoverschrijdende CLI.
  • Voer een query uit in het activiteitenlogboek met behulp van de portal, Azure Monitor REST API, PowerShell-cmdlets of platformoverschrijdende CLI.
  • Bekijk de diagnostische instellingen voor een resource.
  • Bekijk het logboekprofiel voor een abonnement.
  • Instellingen voor automatisch schalen weergeven.
  • Waarschuwingsactiviteit en -instellingen weergeven.
  • Zoek in Log Analytics-werkruimtegegevens, inclusief gebruiksgegevens voor de werkruimte.
  • Haal de tabelschema's op in een Log Analytics-werkruimte.
  • Logboekquery's ophalen en uitvoeren in een Log Analytics-werkruimte.
  • Toegang tot Application Insights-gegevens.

Notitie

Deze rol biedt geen leestoegang tot logboekgegevens die zijn gestreamd naar een Event Hub of die zijn opgeslagen in een opslagaccount. Zie de sectie Beveiligingsoverwegingen voor het bewaken van gegevens verderop in dit artikel voor meer informatie over het configureren van toegang tot deze resources.

Bijdrager voor bewaking

De personen aan wie de rol Controlebijdrager is toegewezen, kunnen alle bewakingsgegevens in een abonnement bekijken. Ze kunnen ook de bewakingsinstellingen maken of wijzigen, maar ze kunnen geen andere resources wijzigen.

Deze rol is een superset van de rol Bewakingslezer. Het is geschikt voor leden van het bewakingsteam van een organisatie of beheerde serviceproviders die, naast de eerder genoemde machtigingen, het volgende moeten doen:

  • Bekijk bewakingsdashboards in de portal en maak hun eigen privébewakingsdashboards.
  • Diagnostische instellingen voor een resource maken en bewerken. 1
  • Stel activiteit en instellingen voor waarschuwingsregels in met behulp van Azure-waarschuwingen.
  • Gedeelde sleutels weergeven voor een Log Analytics-werkruimte.
  • Opgeslagen zoekopdrachten maken, verwijderen en uitvoeren in een Log Analytics-werkruimte.
  • Maak en verwijder de werkruimteopslagconfiguratie voor Log Analytics.
  • Webtests en onderdelen maken voor Application Insights.

1 Als u een diagnostische instelling wilt maken of bewerken, moeten gebruikers ook afzonderlijk de machtiging ListKeys krijgen voor de doelresource (opslagaccount of Event Hub-naamruimte).

Notitie

Deze rol biedt geen leestoegang tot logboekgegevens die zijn gestreamd naar een Event Hub of die zijn opgeslagen in een opslagaccount. Zie de sectie Beveiligingsoverwegingen voor het bewaken van gegevens verderop in dit artikel voor meer informatie over het configureren van toegang tot deze resources.

Machtigingen en aangepaste Azure-rollen bewaken

Als de ingebouwde rollen niet voldoen aan de behoeften van uw team, kunt u een aangepaste Azure-rol maken met gedetailleerde machtigingen.

U kunt bijvoorbeeld gedetailleerde machtigingen gebruiken om een aangepaste Azure-rol te maken voor een activiteitenlogboeklezer met het volgende PowerShell-script.

$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 

Notitie

Toegang tot waarschuwingen, diagnostische instellingen en metrische gegevens voor een resource vereist dat de gebruiker leestoegang heeft tot het resourcetype en het bereik van die resource. Als u een diagnostische instelling maakt waarmee gegevens worden verzonden naar een opslagaccount of streams naar Event Hubs, moet de gebruiker ook de machtiging ListKeys voor de doelresource hebben.

Een rol toewijzen

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Zie Azure-rollen toewijzen met behulp van Azure PowerShell om een rol toe te wijzen.

Met het volgende PowerShell-script wordt bijvoorbeeld een rol toegewezen aan een opgegeven gebruiker.

Vervang door <RoleId> de RBAC-bewakingsrol-id die u wilt toewijzen.

Vervang , <ResourceGroupName>en <UserPrincipalName> door <SubscriptionID>de juiste waarden voor uw omgeving.

# 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

U kunt ook Azure-rollen toewijzen met behulp van Azure Portal.

Belangrijk

  • Zorg ervoor dat u over de benodigde machtigingen beschikt om rollen toe te wijzen in het opgegeven bereik. U moet eigenaarsrechten hebben voor het abonnement of de resourcegroep.
  • Wijs toegang toe in de resourcegroep of het abonnement waartoe uw resource behoort, niet in de resource zelf.

PowerShell-query om het rollidmaatschap te bepalen

Het kan handig zijn om lijsten te genereren van gebruikers die deel uitmaken van een bepaalde rol. Om u te helpen bij het genereren van deze typen lijsten, kunnen de volgende voorbeeldquery's worden aangepast aan uw specifieke behoeften.

Een query uitvoeren op het hele abonnement voor Beheer rollen + Inzender-rollen

(Get-AzRoleAssignment -IncludeClassicAdministrators | Where-Object {$_.RoleDefinitionName -in @('ServiceAdministrator', 'CoAdministrator', 'Owner', 'Contributor') } | Select -ExpandProperty SignInName | Sort-Object -Unique) -Join ", "

Query's uitvoeren binnen de context van een specifieke Application Insights-resource voor eigenaren en inzenders

$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 ", "

Query's uitvoeren binnen de context van een specifieke resourcegroep voor eigenaren en inzenders

$resourceGroup = "ResourceGroupName"
(Get-AzRoleAssignment -ResourceGroup $resourceGroup | Where-Object {$_.RoleDefinitionName -in @('Owner', 'Contributor') } | Select -ExpandProperty SignInName | Sort-Object -Unique) -Join ", "

Beveiligingsoverwegingen voor het bewaken van gegevens

Gegevens in Azure Monitor kunnen worden verzonden in een opslagaccount of worden gestreamd naar een Event Hub, beide azure-resources voor algemeen gebruik. Het zijn van resources voor algemeen gebruik, het maken, verwijderen en openen ervan is een bevoegde bewerking die is gereserveerd voor een beheerder. Omdat deze gegevens gevoelige informatie, zoals IP-adressen of gebruikersnamen, kunnen bevatten, gebruikt u de volgende procedures voor het bewaken van gerelateerde resources om misbruik te voorkomen:

  • Gebruik één toegewezen opslagaccount voor het bewaken van gegevens. Als u bewakingsgegevens wilt scheiden in meerdere opslagaccounts, moet u altijd verschillende opslagaccounts gebruiken voor het bewaken van gegevens en andere typen gegevens. Als u opslagaccounts deelt voor bewaking en andere typen gegevens, kunt u per ongeluk toegang verlenen tot andere gegevens aan organisaties die alleen toegang moeten hebben tot bewakingsgegevens. Een niet-Microsoft-organisatie voor beveiligingsinformatie en gebeurtenisbeheer hoeft bijvoorbeeld alleen toegang te hebben tot bewakingsgegevens.
  • Gebruik één toegewezen servicebus- of Event Hub-naamruimte voor alle diagnostische instellingen om dezelfde reden die in het vorige punt is beschreven.
  • Beperk de toegang tot bewakingsgerelateerde opslagaccounts of Event Hubs door ze in een afzonderlijke resourcegroep te houden. Gebruik het bereik voor uw bewakingsrollen om de toegang tot alleen die resourcegroep te beperken.
  • U moet de ListKeys-machtigingen nooit verlenen voor opslagaccounts of Event Hubs binnen het abonnementsbereik wanneer een gebruiker alleen toegang nodig heeft tot bewakingsgegevens. Geef in plaats daarvan deze machtigingen aan de gebruiker op een resource- of resourcegroepbereik (als u een toegewezen bewakingsresourcegroep hebt).

Wanneer een gebruiker of toepassing toegang nodig heeft tot het bewaken van gegevens in een opslagaccount, genereert u een SAS (Shared Access Signature) in het opslagaccount dat bewakingsgegevens bevat met alleen-lezentoegang op serviceniveau tot blobopslag. In PowerShell kan de SAS van het account eruitzien als de volgende code:

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

Vervolgens kunt u het token aan de entiteit geven die moet worden gelezen uit dat opslagaccount. De entiteit kan alle blobs in dat opslagaccount weergeven en lezen.

Als u deze machtiging wilt beheren met Azure RBAC, kunt u die entiteit ook de Microsoft.Storage/storageAccounts/listkeys/action machtiging verlenen voor dat specifieke opslagaccount. Deze machtiging is nodig voor gebruikers die een diagnostische instelling moeten instellen om gegevens naar een opslagaccount te verzenden. U kunt bijvoorbeeld de volgende aangepaste Azure-rol maken voor een gebruiker of toepassing die uit slechts één opslagaccount moet worden gelezen:

$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 

Waarschuwing

Met de machtiging ListKeys kan de gebruiker de primaire en secundaire opslagaccountsleutels vermelden. Deze sleutels verlenen de gebruiker alle ondertekende machtigingen (zoals lezen, schrijven, blobs maken en blobs verwijderen) voor alle ondertekende services (blob, wachtrij, tabel, bestand) in dat opslagaccount. We raden u aan om indien mogelijk een account-SAS te gebruiken.

U kunt een vergelijkbaar patroon volgen met Event Hubs, maar eerst moet u een toegewezen autorisatieregel maken om te luisteren. Als u toegang wilt verlenen tot een toepassing die alleen hoeft te luisteren naar bewakingsgerelateerde Event Hubs, voert u de volgende stappen uit:

  1. Maak in de portal een beleid voor gedeelde toegang op de Event Hubs die zijn gemaakt voor het streamen van bewakingsgegevens met alleen luisterende claims. U kunt deze bijvoorbeeld 'monitoringReadOnly' noemen. Geef deze sleutel indien mogelijk rechtstreeks aan de consument en sla de volgende stap over.

  2. Als de consument de sleutel op aanvraag moet ophalen, verleent u de gebruiker de actie ListKeys voor die Event Hub. Deze stap is ook nodig voor gebruikers die een diagnostische instelling of een logboekprofiel moeten instellen om naar Event Hubs te streamen. U kunt bijvoorbeeld een Azure RBAC-regel maken:

    $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 
    

Volgende stappen