Tutoriel : Créer un rôle personnalisé Azure à l’aide d’Azure PowerShell

Si les rôles intégrés Azure ne répondent pas aux besoins spécifiques de votre organisation, vous pouvez créer vos propres rôles personnalisés. Pour ce tutoriel, vous allez créer un rôle personnalisé nommé Reader Support Tickets à l’aide d’Azure PowerShell. Le rôle personnalisé permet à l’utilisateur de voir toutes les informations contenues dans le plan de contrôle d’un abonnement et d’ouvrir des tickets de support.

Dans ce tutoriel, vous allez apprendre à :

  • Créer un rôle personnalisé
  • Répertorier les rôles personnalisés
  • Mettre à jour un rôle personnalisé
  • Supprimer un rôle personnalisé

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Prérequis

Pour exécuter ce didacticiel, les éléments suivants sont nécessaires :

Se connecter à Azure PowerShell

Connectez-vous à Azure PowerShell.

Créer un rôle personnalisé

Le moyen le plus simple de créer un rôle personnalisé consiste à commencer avec un rôle prédéfini, à le modifier, puis à créer un nouveau rôle.

  1. Dans PowerShell, utilisez la commande Get-AzProviderOperation pour obtenir la liste des opérations associées au fournisseur de ressources Microsoft.Support. Il est utile de connaître les opérations qui sont disponibles pour créer vos autorisations. Vous pouvez également consulter la liste de toutes les opérations dans Opérations du fournisseur de ressources Azure.

    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. Utilisez la commande Get-AzRoleDefinition pour afficher le rôle Lecteur au format JSON.

    Get-AzRoleDefinition -Name "Reader" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole.json
    
  3. Ouvrez le fichier ReaderSupportRole.json dans un éditeur.

    Voici la sortie JSON. Pour plus d’informations sur les différentes propriétés, consultez Rôles personnalisés Azure.

    {
      "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. Modifiez le fichier JSON pour ajouter l’action "Microsoft.Support/*" à la propriété Actions. Veillez à inclure une virgule après l’action de lecture. Cette action autorise l’utilisateur à créer des tickets de support.

  5. Obtenez l’ID de votre abonnement à l’aide de la commande Get-AzSubscription.

    Get-AzSubscription
    
  6. Dans AssignableScopes, ajoutez votre ID d’abonnement au format suivant : "/subscriptions/00000000-0000-0000-0000-000000000000"

    Vous devez ajouter des ID d’abonnements explicites, sinon vous ne serez pas autorisé à importer le rôle dans votre abonnement.

  7. Supprimez la ligne de propriété Id et affectez la valeur true à la propriété IsCustom.

  8. Remplacez les valeurs de propriétés Name et Description par « Reader Support Tickets » et « View everything in the subscription and also open support tickets ».

    Votre fichier JSON doit ressembler à ceci :

    {
      "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. Pour créer le rôle personnalisé, utilisez la commande New-AzRoleDefinition et spécifiez le fichier de définition de rôle JSON.

    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}
    

    Le nouveau rôle personnalisé est maintenant disponible dans le portail Azure et peut être affecté à des utilisateurs, des groupes ou des principaux de service tout comme des rôles intégrés.

Répertorier les rôles personnalisés

  • Pour lister tous vos rôles personnalisés, utilisez la commande Get-AzRoleDefinition.

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

    Vous pouvez également voir le rôle personnalisé dans le portail Azure.

    screenshot of custom role imported in the Azure portal

Mettre à jour un rôle personnalisé

Pour mettre à jour le rôle personnalisé, vous pouvez mettre à jour le fichier JSON ou utiliser l’objet PSRoleDefinition.

  1. Pour mettre à jour le fichier JSON, utilisez la commande Get-AzRoleDefinition afin d’afficher le rôle personnalisé au format JSON.

    Get-AzRoleDefinition -Name "Reader Support Tickets" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole2.json
    
  2. Ouvrez le fichier dans un éditeur.

  3. Dans Actions, ajoutez l’action pour créer et gérer des déploiements de groupes de ressources "Microsoft.Resources/deployments/*".

    Votre fichier JSON mis à jour doit ressembler à ceci :

    {
      "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. Pour mettre à jour le rôle personnalisé, utilisez la commande Set-AzRoleDefinition et spécifiez le fichier JSON mis à jour.

    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. Pour mettre à jour votre rôle personnalisé à l’aide de l’objet PSRoleDefintion, utilisez d’abord la commande Get-AzRoleDefinition afin d’obtenir le rôle.

    $role = Get-AzRoleDefinition "Reader Support Tickets"
    
  6. Appelez la méthode Add pour ajouter l’action de lecture des paramètres de diagnostic.

    $role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
    
  7. Utilisez la commande Set-AzRoleDefinition pour mettre à jour le rôle.

    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}
    

Supprimer un rôle personnalisé

  1. Utilisez la commande Get-AzRoleDefinition pour obtenir l’ID du rôle personnalisé.

    Get-AzRoleDefinition "Reader Support Tickets"
    
  2. Utilisez la commande Remove-AzRoleDefinition et spécifiez l’ID de rôle pour supprimer le rôle personnalisé.

    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. Lorsque vous êtes invité à confirmer votre choix, saisissez Y.

Étapes suivantes