Wat zijn aangepaste rollen in Azure?
Soms verlenen ingebouwde rollen niet het exacte toegangsniveau dat u nodig hebt. Met aangepaste rollen kunt u rollen definiëren die voldoen aan de specifieke behoeften in uw organisatie. U kunt de aangepaste Azure-rollen die u maakt, toewijzen aan gebruikers, groepen en service-principals op het niveau van abonnementen, resourcegroepen of resources.
In deze les leert u meer over aangepaste rollen in op rollen gebaseerd toegangsbeheer (RBAC) van Azure.
Microsoft Entra- en Azure-rollen
Microsoft Entra-rollen en Azure-rollen worden vaak verward wanneer u voor het eerst met Azure werkt. Microsoft Entra-rollen bieden het mechanisme voor het beheren van machtigingen voor Microsoft Entra-resources, zoals gebruikersaccounts en wachtwoorden. Azure-rollen bieden een schat aan mogelijkheden om Azure-resources, zoals VM’s (virtuele machines), op gedetailleerd niveau te beheren.
In de volgende tabel ziet u de subtiele verschillen tussen hoe u de twee kunt instellen en beheren:
Azure-rollen | Microsoft Entra-rollen |
---|---|
Toegang beheren tot Azure-resources, zoals VM's, opslag, netwerken, en meer | Toegang tot Microsoft Entra-resources beheren, zoals gebruikersaccounts en wachtwoorden |
Meerdere bereikniveaus (beheergroep, abonnement, resourcegroep, resource) | Bereik alleen op tenantniveau |
Informatie over rollen die toegankelijk zijn via de Azure-portal, Azure CLI, Azure PowerShell, Azure Resource Manager-sjablonen, REST API | Rolgegevens die toegankelijk zijn in de Azure-beheerportal, Microsoft 365-beheercentrum, Microsoft Graph, Microsoft Graph PowerShell |
Voor ons scenario hebben we een aangepaste rol nodig voor het beheren van Azure-VM's binnen het abonnementsbereik. Daarom moeten we aangepaste rollen gebruiken in Azure RBAC.
Toewijzing en bereik van aangepaste rollen
Gebruikers met de rollen Gebruikerstoegangbeheerder of Eigenaar kunnen aangepaste rollen maken of toewijzen in Azure RBAC.
U kunt aangepaste rollen toewijzen aan:
Beveiligingsprincipal | Samenvatting |
---|---|
Gebruiker | Een persoon met een profiel in Microsoft Entra ID |
Groep | Een set gebruikers die zijn gemaakt in Microsoft Entra-id |
Service-principals | Een beveiligingsidentiteit die wordt gebruikt voor toepassingen of services om toegang te krijgen tot specifieke Azure-resources |
Beheerde identiteit | Een identiteit in Microsoft Entra-id die automatisch wordt beheerd door Azure |
U kunt de toewijzing en bijbehorende machtigingen op verschillende niveaus toepassen binnen Azure. De verschillende bereiken zijn:
- Abonnement
- Resourcegroep
- Afzonderlijke resource
Roldefinitie en structuur
Een aangepaste roldefinitie wordt opgesplitst in een verzameling verschillende machtigingen. Elke roldefinitie beschrijft de bewerkingen die zijn toegestaan, zoals lezen, schrijven en verwijderen. De definitie wordt gevormd met behulp van de volgende structuren:
{
"Name": "",
"IsCustom": true,
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}"
]
}
In het volgende voorbeeld ziet u de roldefinitie voor de rol Inzender :
{
"Name": "Contributor",
"Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
"IsCustom": false,
"Description": "Lets you manage everything except access to resources.",
"Actions": [
"*"
],
"NotActions": [
"Microsoft.Authorization/*/Delete",
"Microsoft.Authorization/*/Write",
"Microsoft.Authorization/elevateAccess/Action",
"Microsoft.Blueprint/blueprintAssignments/write",
"Microsoft.Blueprint/blueprintAssignments/delete"
],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/"
]
}
Elke roldefinitie wordt gedeclareerd met behulp van de volgende indeling:
{Company}.{ProviderName}/{resourceType}/{action}
Het actiegedeelte is doorgaans een van de volgende acties:
- *
- gelezen
- schrijven
- action
- delete
Aangepaste rol voor het beheren van VM's definiëren
Gebruik de lijst met bewerkingen voor Azure Resource Manager-resourceprovider en bekijk de ingebouwde Azure-rollen die machtigingen bieden die vergelijkbaar zijn met de machtigingen die u nodig hebt, voor hulp bij het bepalen welke machtigingen moeten worden opgenomen in een roldefinitie.
Ingebouwde rollen bekijken
Voor ons scenario heeft de ingebouwde rol Inzender voor virtuele machines meer machtigingen dan de werknemer nodig heeft en heeft de aanmelding van de beheerder van de virtuele machine niet voldoende.
De volgende Azure CLI-opdracht retourneert de machtigingen voor de inzender van de ingebouwde rol voor virtuele machines:
az role definition list --name "Virtual Machine Contributor" --output json | jq '.[] | .permissions[0].actions'
In de volgende lijst ziet u de machtigingen voor de ingebouwde rol Inzender voor virtuele machines:
[
"Microsoft.Authorization/*/read",
"Microsoft.Compute/availabilitySets/*",
"Microsoft.Compute/locations/*",
"Microsoft.Compute/virtualMachines/*",
"Microsoft.Compute/virtualMachineScaleSets/*",
"Microsoft.DevTestLab/schedules/*",
"Microsoft.Insights/alertRules/*",
"Microsoft.Network/applicationGateways/backendAddressPools/join/action",
"Microsoft.Network/loadBalancers/backendAddressPools/join/action",
"Microsoft.Network/loadBalancers/inboundNatPools/join/action",
"Microsoft.Network/loadBalancers/inboundNatRules/join/action",
"Microsoft.Network/loadBalancers/probes/join/action",
"Microsoft.Network/loadBalancers/read",
"Microsoft.Network/locations/*",
"Microsoft.Network/networkInterfaces/*",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/publicIPAddresses/join/action",
"Microsoft.Network/publicIPAddresses/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.RecoveryServices/locations/*",
"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write",
"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/*/read",
"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read",
"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write",
"Microsoft.RecoveryServices/Vaults/backupPolicies/read",
"Microsoft.RecoveryServices/Vaults/backupPolicies/write",
"Microsoft.RecoveryServices/Vaults/read",
"Microsoft.RecoveryServices/Vaults/usages/read",
"Microsoft.RecoveryServices/Vaults/write",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/deployments/*",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.SqlVirtualMachine/*",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Support/*"
]
Als u deze lijst wilt ophalen in PowerShell, voert u de volgende opdracht uit:
Get-AzRoleDefinition -Name "Virtual Machine Contributor" | Select Actions | ConvertTo-Json
Voor ons scenario willen we een aangepaste rol waarmee u virtuele machines voor een specifiek abonnement kunt bewaken en opnieuw kunt opstarten. Daarom willen we de volgende acties opnemen die zijn gericht op abonnementsniveau:
- Leestoegang tot de reken-, netwerk- en opslagresources
- De mogelijkheid om virtuele machines te starten en opnieuw op te starten
- Toegang tot de resourcegroepen in het abonnement
- Toegang tot bewakingsresources
Er zijn enkele bewerkingen in de roldefinitie Inzender voor virtuele machines die we kunnen gebruiken, zoals "Microsoft.Insights/alertRules/*"
voor bewaking, maar opnieuw opstarten en sommige andere bewerkingen worden niet vermeld als acties in die roldefinitie.
Bewerkingen voor resourceproviders zoeken
We kunnen de actie voor het opnieuw opstarten van de VIRTUELE machine vinden in de lijst met bewerkingen van de Resource Manager-resourceprovider of door de volgende PowerShell-opdracht uit te voeren om bewerkingen voor VM's te retourneren:
Get-AzProviderOperation */virtualMachines/*
De volgende bewerking voor opnieuw opstarten wordt geretourneerd in de lijst:
Operation : Microsoft.Compute/virtualMachines/restart/action
OperationName : Restart Virtual Machine
ProviderNamespace : Microsoft Compute
ResourceName : Virtual Machines
Description : Restarts the virtual machine
IsDataAction : False
U kunt de Azure PowerShell-cmdlet Get-AzProviderOperation
gebruiken om de meest recente lijst met resourceproviderbewerkingen op te halen. In Azure CLI gebruikt u de opdracht az provider operation show
. U vindt een gepubliceerde lijst met resourceproviders en bewerkingen in de Azure RBAC-inhoud op Docs.
De roldefinitie VM-operator maken
Laten we ervan uitgaan dat we hebben gekozen wat we nodig hebben, door de bijbehorende ingebouwde roldefinities en lijst met bewerkingen voor resourceproviders te bekijken. We hebben dan de volgende roldefinitie voor onze aangepaste rol gevonden. We gebruiken deze roldefinitie voor onze aangepaste rol.
{
"Name": "Virtual Machine Operator",
"Id": "88888888-8888-8888-8888-888888888888",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Support/*"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}"
]
}