Zelfstudie: Een aangepaste Azure-rol maken met behulp van Azure PowerShell

Als de ingebouwde rollen van Azure niet voldoen aan de specifieke behoeften van uw organisatie, kunt u uw eigen aangepaste rollen maken. Voor deze zelfstudie gaat u met behulp van Azure PowerShell een aangepaste rol maken met de naam Reader Support Tickets. Met de aangepaste rol kan de gebruiker alles in het besturingsvlak van een abonnement bekijken en ook ondersteuningstickets openen.

In deze zelfstudie leert u het volgende:

  • Een aangepaste rol maken
  • Aangepaste rollen opvragen
  • Een aangepaste rol bijwerken
  • Een aangepaste rol verwijderen

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

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.

Vereisten

Voor het voltooien van deze zelfstudie hebt u het volgende nodig:

Aanmelden bij Azure PowerShell

Meld u aan bij Azure PowerShell.

Een aangepaste rol maken

De eenvoudigste manier om een aangepaste rol te maken, is door een ingebouwde rol als uitgangspunt te nemen, deze te bewerken en zo een nieuwe rol te maken.

  1. Gebruik in PowerShell de opdracht Get-AzProviderOperation om de lijst met bewerkingen voor de Microsoft.Support-resourceprovider op te vragen. Het is handig om te weten welke bewerkingen er beschikbaar zijn voor het maken van machtigingen. U kunt ook in Bewerkingen van Azure-resourceprovider een overzicht zien van alle bewerkingen.

    Get-AzProviderOperation "Microsoft.Support/*" | FT Operation, Description -AutoSize
    
    Operation                              Description
    ---------                              -----------
    Microsoft.Support/register/action      Registers to Support Resource Provider
    Microsoft.Support/supportTickets/read  Gets Support Ticket details (including status, severity, contact ...
    Microsoft.Support/supportTickets/write Creates or Updates a Support Ticket. You can create a Support Tic...
    
  2. Gebruik de opdracht Get-AzRoleDefinition om de rol Lezer uit te voeren in de JSON-indeling.

    Get-AzRoleDefinition -Name "Reader" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole.json
    
  3. Open het bestand ReaderSupportRole.json in een teksteditor.

    Hieronder ziet u de JSON-uitvoer. Zie Aangepaste Azure-rollen voor informatie over de verschillende eigenschappen.

    {
      "Name": "Reader",
      "Id": "acdd72a7-3385-48ef-bd42-f606fba81ae7",
      "IsCustom": false,
      "Description": "Lets you view everything, but not make any changes.",
      "Actions": [
        "*/read"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/"
      ]
    }
    
  4. Bewerk het JSON-bestand om de "Microsoft.Support/*" actie toe te voegen aan de Actions eigenschap. Zorg ervoor dat u een komma opneemt na de leesactie. Deze actie stelt de gebruiker in staat om ondersteuningstickets aan te maken.

  5. Vraag de id van uw abonnement op met de opdracht Get-AzSubscription.

    Get-AzSubscription
    
  6. Voeg in AssignableScopes uw abonnements-id toe met de volgende indeling: "/subscriptions/00000000-0000-0000-0000-000000000000"

    U moet expliciete abonnement-id's toevoegen, anders is het niet mogelijk om de rol in uw abonnement te importeren.

  7. Verwijder de regel met de eigenschap Id en wijzig de eigenschap IsCustom in true.

  8. Wijzig de eigenschappen Name en Description in 'Reader Support Tickets' en 'View everything in the subscription and also open support tickets'.

    Uw JSON-bestand moet er nu zo uitzien:

    {
      "Name": "Reader Support Tickets",
      "IsCustom": true,
      "Description": "View everything in the subscription and also open support tickets.",
      "Actions": [
        "*/read",
        "Microsoft.Support/*"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ]
    }
    
  9. Gebruik voor het maken van de nieuwe aangepaste rol de opdracht New-AzRoleDefinition en geef het JSON-definitiebestand voor de rol op.

    New-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole.json"
    
    Name             : Reader Support Tickets
    Id               : 22222222-2222-2222-2222-222222222222
    IsCustom         : True
    Description      : View everything in the subscription and also open support tickets.
    Actions          : {*/read, Microsoft.Support/*}
    NotActions       : {}
    DataActions      : {}
    NotDataActions   : {}
    AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
    

    De nieuwe aangepaste rol is nu beschikbaar in Azure Portal en kan worden toegewezen aan gebruikers, groepen of service-principals, net als ingebouwde rollen.

Aangepaste rollen opvragen

  • Gebruik de opdracht Get-AzRoleDefinition om alle aangepaste rollen weer te geven.

    Get-AzRoleDefinition | ? {$_.IsCustom -eq $true} | FT Name, IsCustom
    
    Name                   IsCustom
    ----                   --------
    Reader Support Tickets     True
    

    U kunt de aangepaste rol ook zien in Azure Portal.

    screenshot of custom role imported in the Azure portal

Een aangepaste rol bijwerken

Als u de aangepaste rol wilt bijwerken, kunt u het JSON-bestand bijwerken of het object PSRoleDefinition gebruiken.

  1. Als u het JSON-bestand wilt bijwerken, gebruikt u de opdracht Get-AzRoleDefinition om de aangepaste rol uit te voeren in de JSON-indeling.

    Get-AzRoleDefinition -Name "Reader Support Tickets" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole2.json
    
  2. Open het bestand in een editor.

  3. Voeg Actionsde actie toe om resourcegroepimplementaties "Microsoft.Resources/deployments/*"te maken en te beheren.

    Het bijgewerkte JSON-bestand moet er nu zo uitzien:

    {
      "Name": "Reader Support Tickets",
      "Id": "22222222-2222-2222-2222-222222222222",
      "IsCustom": true,
      "Description": "View everything in the subscription and also open support tickets.",
      "Actions": [
        "*/read",
        "Microsoft.Support/*",
        "Microsoft.Resources/deployments/*"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ]
    }
    
  4. Als u de aangepaste rol wilt bijwerken, gebruikt u de opdracht Set-AzRoleDefinition en geeft u het bijgewerkte JSON-bestand op.

    Set-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole2.json"
    
    Name             : Reader Support Tickets
    Id               : 22222222-2222-2222-2222-222222222222
    IsCustom         : True
    Description      : View everything in the subscription and also open support tickets.
    Actions          : {*/read, Microsoft.Support/*, Microsoft.Resources/deployments/*}
    NotActions       : {}
    DataActions      : {}
    NotDataActions   : {}
    AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
    
  5. Als u het object PSRoleDefintion wilt gebruiken om de aangepaste rol bij te werken, gebruikt u eerst de opdracht Get-AzRoleDefinition om de rol op te vragen.

    $role = Get-AzRoleDefinition "Reader Support Tickets"
    
  6. Roep de Add methode aan om de actie toe te voegen om diagnostische instellingen te lezen.

    $role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
    
  7. Gebruik Set-AzRoleDefinition om de rol bij te werken.

    Set-AzRoleDefinition -Role $role
    
    Name             : Reader Support Tickets
    Id               : 22222222-2222-2222-2222-222222222222
    IsCustom         : True
    Description      : View everything in the subscription and also open support tickets.
    Actions          : {*/read, Microsoft.Support/*, Microsoft.Resources/deployments/*,
                       Microsoft.Insights/diagnosticSettings/*/read}
    NotActions       : {}
    DataActions      : {}
    NotDataActions   : {}
    AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
    

Een aangepaste rol verwijderen

  1. Gebruik de opdracht Get-AzRoleDefinition om de id van de aangepaste rol op te vragen.

    Get-AzRoleDefinition "Reader Support Tickets"
    
  2. Gebruik de opdracht Remove-AzRoleDefinition en geef de id van de rol op om de aangepaste rol te verwijderen.

    Remove-AzRoleDefinition -Id "22222222-2222-2222-2222-222222222222"
    
    Confirm
    Are you sure you want to remove role definition with id '22222222-2222-2222-2222-222222222222'.
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):
    
  3. Wanneer u wordt gevraagd om de bewerking te bevestigen, typt u Y.

Volgende stappen