Aangepaste Azure-rollen maken of bijwerken met behulp van Azure CLI

Als de ingebouwde rollen van Azure niet voldoen aan de specifieke behoeften van uw organisatie, kunt u uw eigen aangepaste rollen maken. In dit artikel wordt beschreven hoe u aangepaste rollen kunt weergeven, maken, bijwerken of verwijderen met behulp van Azure CLI.

Zie Zelfstudie: Een aangepaste Azure-rol maken met behulp van Azure CLI voor een stapsgewijze zelfstudie over het maken van een aangepaste rol.

Vereisten

Als u aangepaste rollen wilt maken, hebt u het volgende nodig:

Aangepaste rollen opvragen

Als u aangepaste rollen wilt weergeven die beschikbaar zijn voor toewijzing, gebruikt u az role definition list. In het volgende voorbeeld ziet u alle aangepaste rollen in het huidige abonnement.

az role definition list --custom-role-only true --output json --query '[].{roleName:roleName, roleType:roleType}'
[
  {
    "roleName": "My Management Contributor",
    "type": "CustomRole"
  },
  {
    "roleName": "My Service Reader Role",
    "type": "CustomRole"
  },
  {
    "roleName": "Virtual Machine Operator",
    "type": "CustomRole"
  }
]

Een aangepaste roldefinitie weergeven

Als u een aangepaste roldefinitie wilt weergeven, gebruikt u az role definition list. Deze opdracht is dezelfde opdracht die u zou gebruiken voor een ingebouwde rol.

az role definition list --name {roleName}

In het volgende voorbeeld ziet u de roldefinitie van de operator voor virtuele machines :

az role definition list --name "Virtual Machine Operator"
[
  {
    "assignableScopes": [
      "/subscriptions/{subscriptionId}"
    ],
    "description": "Can monitor and restart virtual machines.",
    "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000",
    "name": "00000000-0000-0000-0000-000000000000",
    "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"
  }
]

In het volgende voorbeeld ziet u alleen de acties van de rol Operator voor virtuele machines:

az role definition list --name "Virtual Machine Operator" --output json --query '[].permissions[0].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/*"
  ]
]

Een aangepaste rol maken

Als u een aangepaste rol wilt maken, gebruikt u az role definition create. De roldefinitie kan een JSON-beschrijving of een pad naar een bestand met een JSON-beschrijving zijn.

az role definition create --role-definition {roleDefinition}

In het volgende voorbeeld wordt een aangepaste rol gemaakt met de naam Virtual Machine Operator. Deze aangepaste rol wijst toegang toe aan alle leesacties van Microsoft.Compute, Microsoft.Storage en Microsoft.Network-resourceproviders en wijst toegang toe voor het starten, opnieuw opstarten en bewaken van virtuele machines. Deze aangepaste rol kan worden gebruikt in twee abonnementen. In dit voorbeeld wordt een JSON-bestand gebruikt als invoer.

vmoperator.json

{
  "Name": "Virtual Machine Operator",
  "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": [

  ],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}"
  ]
}
az role definition create --role-definition ~/roles/vmoperator.json

Een aangepaste rol bijwerken

Als u een aangepaste rol wilt bijwerken, gebruikt u eerst az role definition list om de roldefinitie op te halen. Breng ten tweede de gewenste wijzigingen aan in de roldefinitie. Gebruik ten slotte az role definition update om de bijgewerkte roldefinitie op te slaan.

az role definition update --role-definition {roleDefinition}

In het volgende voorbeeld wordt de actie Microsoft.Insights/diagnostic Instellingen/ toegevoegd aan Actions en voegt u een beheergroep toe aan AssignableScopes de aangepaste rol Van operator voor virtuele machines.

vmoperator.json

{
  "Name": "Virtual Machine Operator",
  "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": [

  ],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}",
    "/providers/Microsoft.Management/managementGroups/marketing-group"
  ]
}
az role definition update --role-definition ~/roles/vmoperator.json

Een aangepaste rol verwijderen

  1. Verwijder roltoewijzingen die gebruikmaken van de aangepaste rol. Zie Roltoewijzingen zoeken om een aangepaste rol te verwijderen voor meer informatie.

  2. Gebruik az role definition delete om de aangepaste rol te verwijderen. Als u de rol wilt opgeven die u wilt verwijderen, gebruikt u de rolnaam of de rol-id. Gebruik az role definition list om de rol-id te bepalen.

    az role definition delete --name {roleNameOrId}
    

    In het volgende voorbeeld wordt de aangepaste rol Virtual Machine Operator verwijderd.

    az role definition delete --name "Virtual Machine Operator"
    

Volgende stappen