Aangepaste Azure-rollen

Als de ingebouwde rollen van Azure niet voldoen aan de specifieke behoeften van uw organisatie, kunt u uw eigen aangepaste rollen maken. Net als bij ingebouwde rollen kunt u aangepaste rollen toewijzen aan gebruikers, groepen en service-principals voor beheergroepen, abonnementen en resourcegroepbereiken.

Aangepaste rollen kunnen worden gedeeld tussen abonnementen die dezelfde Microsoft Entra-tenant vertrouwen. Er geldt een limiet van 5000 aangepaste rollen per tenant. (Voor Microsoft Azure beheerd door 21Vianet is de limiet 2000 aangepaste rollen.) Aangepaste rollen kunnen worden gemaakt met behulp van Azure Portal, Azure PowerShell, Azure CLI of de REST API.

Stappen voor het maken van een aangepaste rol

Hier volgen de basisstappen voor het maken van een aangepaste rol.

  1. Bepaal de machtigingen die u nodig hebt.

    Wanneer u een aangepaste rol maakt, moet u weten welke acties beschikbaar zijn om uw machtigingen te definiëren. Normaal gesproken begint u met een bestaande ingebouwde rol en wijzigt u deze vervolgens voor uw behoeften. U voegt de acties toe aan de Actions of NotActions eigenschappen van de roldefinitie. Als u gegevensacties hebt, voegt u deze toe aan de DataActions of NotDataActions eigenschappen.

    Zie de volgende sectie voor meer informatie over het bepalen van de machtigingen die u nodig hebt.

  2. Bepaal hoe u de aangepaste rol wilt maken.

    U kunt aangepaste rollen maken met behulp van Azure Portal, Azure PowerShell, Azure CLI of de REST API.

  3. Maak de aangepaste rol.

    De eenvoudigste manier is om Azure Portal te gebruiken. Zie Aangepaste Azure-rollen maken of bijwerken met behulp van Azure Portal voor stappen voor het maken van een aangepaste rol met behulp van Azure Portal.

  4. Test de aangepaste rol.

    Zodra u uw aangepaste rol hebt, moet u deze testen om te controleren of deze werkt zoals verwacht. Als u later aanpassingen wilt aanbrengen, kunt u de aangepaste rol bijwerken.

Bepalen welke machtigingen u nodig hebt

Azure heeft duizenden machtigingen die u mogelijk kunt opnemen in uw aangepaste rol. Hier volgen enkele methoden waarmee u de machtigingen kunt bepalen die u wilt toevoegen aan uw aangepaste rol:

  • Bekijk bestaande ingebouwde rollen.

    Mogelijk wilt u een bestaande rol wijzigen of machtigingen combineren die in meerdere rollen worden gebruikt.

  • Vermeld de Azure-services waarvoor u toegang wilt verlenen.

  • Bepaal de resourceproviders die zijn toegewezen aan de Azure-services.

    Azure-services maken hun functionaliteit en machtigingen beschikbaar via resourceproviders. De Microsoft.Compute-resourceprovider levert bijvoorbeeld resources voor virtuele machines en de Microsoft.Billing-resourceprovider levert abonnements- en factureringsresources. Als u weet welke resourceproviders u kunnen helpen bij het verfijnen en bepalen van de machtigingen die u nodig hebt voor uw aangepaste rol.

    Wanneer u een aangepaste rol maakt met behulp van Azure Portal, kunt u ook de resourceproviders bepalen door te zoeken naar trefwoorden. Deze zoekfunctionaliteit wordt beschreven in Aangepaste Azure-rollen maken of bijwerken met behulp van Azure Portal.

    Add permissions pane with resource provider

  • Zoek in de beschikbare machtigingen om machtigingen te vinden die u wilt opnemen.

    Wanneer u een aangepaste rol maakt met behulp van Azure Portal, kunt u op trefwoord zoeken naar machtigingen. U kunt bijvoorbeeld zoeken naar machtigingen voor virtuele machines of facturering . U kunt ook alle machtigingen downloaden als een CSV-bestand en vervolgens in dit bestand zoeken. Deze zoekfunctionaliteit wordt beschreven in Aangepaste Azure-rollen maken of bijwerken met behulp van Azure Portal.

    Add permissions list

Voorbeeld van aangepaste rol

Hieronder ziet u hoe een aangepaste rol eruitziet zoals weergegeven met behulp van Azure PowerShell in JSON-indeling. Deze aangepaste rol kan worden gebruikt voor het bewaken en opnieuw opstarten van virtuele machines.

{
  "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.Insights/diagnosticSettings/*",
    "Microsoft.Support/*"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}",
    "/providers/Microsoft.Management/managementGroups/{groupId1}"
  ]
}

Hieronder ziet u dezelfde aangepaste rol als die wordt weergegeven met behulp van Azure CLI.

[
  {
    "assignableScopes": [
      "/subscriptions/{subscriptionId1}",
      "/subscriptions/{subscriptionId2}",
      "/providers/Microsoft.Management/managementGroups/{groupId1}"
    ],
    "description": "Can monitor and restart virtual machines.",
    "id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/88888888-8888-8888-8888-888888888888",
    "name": "88888888-8888-8888-8888-888888888888",
    "permissions": [
      {
        "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.Insights/diagnosticSettings/*",
          "Microsoft.Support/*"
        ],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "Virtual Machine Operator",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

Eigenschappen van aangepaste rol

In de volgende tabel wordt beschreven wat de aangepaste roleigenschappen betekenen.

Eigenschappen Vereist Type Description
Name
roleName
Ja String De weergavenaam van de aangepaste rol. Hoewel een roldefinitie een resource op beheergroep of abonnementsniveau is, kan een roldefinitie worden gebruikt in meerdere abonnementen die dezelfde Microsoft Entra-tenant delen. Deze weergavenaam moet uniek zijn binnen het bereik van de Microsoft Entra-tenant. Kan letters, cijfers, spaties en speciale tekens bevatten. Het maximum aantal tekens is 512.
Id
name
Ja String De unieke id van de aangepaste rol. Voor Azure PowerShell en Azure CLI wordt deze id automatisch gegenereerd wanneer u een nieuwe rol maakt.
IsCustom
roleType
Ja String Geeft aan of dit een aangepaste rol is. Instellen op true of CustomRole voor aangepaste rollen. Instellen op false of BuiltInRole voor ingebouwde rollen.
Description
description
Ja String De beschrijving van de aangepaste rol. Kan letters, cijfers, spaties en speciale tekens bevatten. Het maximum aantal tekens is 2048.
Actions
actions
Ja Tekenreeks[] Een matrix met tekenreeksen die de besturingsvlakacties specificeert die door de rol kunnen worden uitgevoerd. Zie Acties voor meer informatie.
NotActions
notActions
Nee Tekenreeks[] Een matrix met tekenreeksen die de besturingsvlakacties specificeert die zijn uitgesloten van de toegestane Actions. Zie NotActions voor meer informatie.
DataActions
dataActions
Nee Tekenreeks[] Een matrix met tekenreeksen die de acties voor het gegevensvlak specificeert waarmee de rol kan worden uitgevoerd voor uw gegevens binnen dat object. Als u een aangepaste rol maakt met DataActions, kan die rol niet worden toegewezen aan het bereik van de beheergroep. Zie DataActions voor meer informatie.
NotDataActions
notDataActions
Nee Tekenreeks[] Een matrix met tekenreeksen die de acties voor het gegevensvlak specificeert die zijn uitgesloten van de toegestane DataActions. Zie NotDataActions voor meer informatie.
AssignableScopes
assignableScopes
Ja Tekenreeks[] Een matrix met tekenreeksen die de bereiken specificeert die de aangepaste rol beschikbaar is voor toewijzing. Maximumaantal AssignableScopes is 2000. Zie AssignableScopes voor meer informatie.

Machtigingstekenreeksen zijn niet hoofdlettergevoelig. Wanneer u uw aangepaste rollen maakt, moet de conventie overeenkomen met het geval dat u ziet voor machtigingen in bewerkingen van de Azure-resourceprovider.

Machtigingen voor jokertekens

Actions, NotActions, DataActionsen NotDataActions ondersteuning voor jokertekens (*) om machtigingen te definiëren. Een jokerteken (*) breidt een machtiging uit voor alles wat overeenkomt met de actiereeks die u opgeeft. Stel dat u alle machtigingen met betrekking tot Azure Cost Management en exports wilt toevoegen. U kunt al deze actiereeksen toevoegen:

Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action

In plaats van al deze tekenreeksen toe te voegen, kunt u gewoon een jokertekenreeks toevoegen. De volgende jokertekenreeks is bijvoorbeeld gelijk aan de vorige vijf tekenreeksen. Dit omvat ook toekomstige exportmachtigingen die kunnen worden toegevoegd.

Microsoft.CostManagement/exports/*

Notitie

Het is raadzaam dat u het jokerteken () opgeeft Actions en DataActions expliciet in plaats van het jokerteken (*). De extra toegang en machtigingen die via de toekomst Actions worden verleend of DataActions mogelijk ongewenst gedrag met behulp van het jokerteken.

Wie kan een aangepaste rol maken, verwijderen, bijwerken of weergeven

Net als bij ingebouwde rollen geeft de AssignableScopes eigenschap de bereiken op die de rol beschikbaar is voor toewijzing. De AssignableScopes eigenschap voor een aangepaste rol bepaalt ook wie de aangepaste rol kan maken, verwijderen, bijwerken of weergeven.

Opdracht Actie Beschrijving
Een aangepaste rol maken/verwijderen Microsoft.Authorization/ roleDefinitions/write Gebruikers die deze actie op alle AssignableScopes aangepaste rollen krijgen, kunnen aangepaste rollen maken (of verwijderen) voor gebruik in deze bereiken. Bijvoorbeeld eigenaren en gebruikerstoegang Beheer istrators van beheergroepen, abonnementen en resourcegroepen.
Een aangepaste rol bijwerken Microsoft.Authorization/ roleDefinitions/write Gebruikers die deze actie voor alle AssignableScopes aangepaste rollen krijgen, kunnen aangepaste rollen in deze bereiken bijwerken. Bijvoorbeeld eigenaren en gebruikerstoegang Beheer istrators van beheergroepen, abonnementen en resourcegroepen.
Een aangepaste rol weergeven Microsoft.Authorization/ roleDefinitions/read Gebruikers aan wie deze actie in een bereik wordt verleend, kunnen de aangepaste rollen bekijken die beschikbaar zijn voor toewijzing in dat bereik. Bij alle ingebouwde rollen is toegestaan dat aangepaste rollen beschikbaar zijn voor toewijzing.

Roltoewijzingen zoeken om een aangepaste rol te verwijderen

Voordat u een aangepaste rol kunt verwijderen, moet u alle roltoewijzingen verwijderen die gebruikmaken van de aangepaste rol. Als u een aangepaste rol probeert te verwijderen met roltoewijzingen, wordt het volgende bericht weergegeven: There are existing role assignments referencing role (code: RoleDefinitionHasAssignments)

Hier volgen stappen om de roltoewijzingen te vinden voordat u een aangepaste rol verwijdert:

Limieten van aangepaste rol

In de volgende lijst worden de limieten voor aangepaste rollen beschreven.

  • Elke tenant kan maximaal 5000 aangepaste rollen hebben.
  • Microsoft Azure beheerd door 21Vianet kan maximaal 2000 aangepaste rollen hebben voor elke tenant.
  • U kunt niet instellen AssignableScopes op het hoofdbereik ("/").
  • U kunt geen jokertekens (*) gebruiken in AssignableScopes. Deze beperking met jokertekens zorgt ervoor dat een gebruiker mogelijk geen toegang kan krijgen tot een bereik door de roldefinitie bij te werken.
  • U kunt slechts één jokerteken in een actiereeks hebben.
  • U kunt slechts één beheergroep in AssignableScopes van een aangepaste rol definiëren.
  • Azure Resource Manager valideert het bestaan van de beheergroep niet in de roldefinities AssignableScopes.
  • Aangepaste rollen met DataActions kunnen niet worden toegewezen in het bereik van de beheergroep.
  • U kunt een aangepaste rol maken met DataActions en één beheergroep in AssignableScopes. U kunt de aangepaste rol niet toewijzen aan het bereik van de beheergroep zelf; U kunt de aangepaste rol echter toewijzen aan het bereik van de abonnementen binnen de beheergroep. Dit kan handig zijn als u één aangepaste rol moet maken met DataActions die moet worden toegewezen in meerdere abonnementen, in plaats van een afzonderlijke aangepaste rol te maken voor elk abonnement.

Zie Wat zijn Azure-beheergroepen? voor meer informatie over aangepaste rollen en beheergroepen.

Invoer- en uitvoerindelingen

Als u een aangepaste rol wilt maken met behulp van de opdrachtregel, gebruikt u doorgaans JSON om de gewenste eigenschappen voor de aangepaste rol op te geven. Afhankelijk van de hulpprogramma's die u gebruikt, zien de invoer- en uitvoerindelingen er iets anders uit. In deze sectie worden de invoer- en uitvoerindelingen weergegeven, afhankelijk van het hulpprogramma.

Azure PowerShell

Als u een aangepaste rol wilt maken met behulp van Azure PowerShell, moet u de volgende invoer opgeven.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Als u een aangepaste rol wilt bijwerken met behulp van Azure PowerShell, moet u de volgende invoer opgeven. Houd er rekening mee dat de Id eigenschap is toegevoegd.

{
  "Name": "",
  "Id": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Hieronder ziet u een voorbeeld van de uitvoer wanneer u een aangepaste rol weergeeft met behulp van Azure PowerShell en de opdracht ConvertTo-Json .

{
  "Name": "",
  "Id": "",
  "IsCustom": true,
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Azure-CLI

Als u een aangepaste rol wilt maken of bijwerken met behulp van Azure CLI, moet u de volgende invoer opgeven. Deze indeling is dezelfde indeling wanneer u een aangepaste rol maakt met behulp van Azure PowerShell.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Hieronder ziet u een voorbeeld van de uitvoer wanneer u een aangepaste rol weergeeft met behulp van Azure CLI.

[
  {
    "assignableScopes": [],
    "description": "",
    "id": "",
    "name": "",
    "permissions": [
      {
        "actions": [],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

REST-API

Als u een aangepaste rol wilt maken of bijwerken met behulp van de REST API, moet u de volgende invoer opgeven. Deze indeling is dezelfde indeling die wordt gegenereerd wanneer u een aangepaste rol maakt met behulp van Azure Portal.

{
  "properties": {
    "roleName": "",
    "description": "",
    "assignableScopes": [],
    "permissions": [
      {
        "actions": [],
        "notActions": [],
        "dataActions": [],
        "notDataActions": []
      }
    ]
  }
}

Hieronder ziet u een voorbeeld van de uitvoer wanneer u een aangepaste rol vermeldt met behulp van de REST API.

{
    "properties": {
        "roleName": "",
        "type": "CustomRole",
        "description": "",
        "assignableScopes": [],
        "permissions": [
            {
                "actions": [],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ],
        "createdOn": "",
        "updatedOn": "",
        "createdBy": "",
        "updatedBy": ""
    },
    "id": "",
    "type": "Microsoft.Authorization/roleDefinitions",
    "name": ""
}

Volgende stappen