Tutoriel : Créer un rôle personnalisé Azure à l’aide d’Azure PowerShellTutorial: Create an Azure custom role using 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.If the Azure built-in roles don't meet the specific needs of your organization, you can create your own custom roles. Pour ce tutoriel, vous allez créer un rôle personnalisé nommé Reader Support Tickets à l’aide d’Azure PowerShell.For this tutorial, you create a custom role named Reader Support Tickets using Azure PowerShell. Le rôle personnalisé permet à l’utilisateur de consulter tous les éléments du plan de gestion d’un abonnement et d’ouvrir des tickets de support.The custom role allows the user to view everything in the management plane of a subscription and also open support tickets.

Dans ce tutoriel, vous allez apprendre à :In this tutorial, you learn how to:

  • Créer un rôle personnaliséCreate a custom role
  • Répertorier les rôles personnalisésList custom roles
  • Mettre à jour un rôle personnaliséUpdate a custom role
  • Supprimer un rôle personnaliséDelete a custom role

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

PrérequisPrerequisites

Pour exécuter ce didacticiel, les éléments suivants sont nécessaires :To complete this tutorial, you will need:

Se connecter à Azure PowerShellSign in to Azure PowerShell

Connectez-vous à Azure PowerShell.Sign in to Azure PowerShell.

Créer un rôle personnaliséCreate a custom role

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.The easiest way to create a custom role is to start with a built-in role, edit it, and then create a new role.

  1. Dans PowerShell, utilisez la commande Get-AzProviderOperation pour obtenir la liste des opérations associées au fournisseur de ressources Microsoft.Support.In PowerShell, use the Get-AzProviderOperation command to get the list of operations for the Microsoft.Support resource provider. Il est utile de connaître les opérations qui sont disponibles pour créer vos autorisations.It's helpful to know the operations that are available to create your permissions. Vous pouvez également consulter la liste de toutes les opérations dans Opérations du fournisseur de ressources Azure Resource Manager.You can also see a list of all the operations at Azure Resource Manager resource provider operations.

    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.Use the Get-AzRoleDefinition command to output the Reader role in JSON format.

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

    Voici la sortie JSON.The following shows the JSON output. Pour plus d’informations sur les différentes propriétés, consultez Rôles personnalisés Azure.For information about the different properties, see Azure custom roles.

    {
      "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’opération "Microsoft.Support/*" à la propriété Actions.Edit the JSON file to add the "Microsoft.Support/*" operation to the Actions property. Veillez à inclure une virgule après l’opération de lecture.Be sure to include a comma after the read operation. Cette action autorise l’utilisateur à créer des tickets de support.This action will allow the user to create support tickets.

  5. Obtenez l’ID de votre abonnement à l’aide de la commande Get-AzSubscription.Get the ID of your subscription using the Get-AzSubscription command.

    Get-AzSubscription
    
  6. Dans AssignableScopes, ajoutez votre ID d’abonnement au format suivant : "/subscriptions/00000000-0000-0000-0000-000000000000"In AssignableScopes, add your subscription ID with the following format: "/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.You must add explicit subscription IDs, otherwise you won't be allowed to import the role into your subscription.

  7. Supprimez la ligne de propriété Id et affectez la valeur true à la propriété IsCustom.Delete the Id property line and change the IsCustom property to true.

  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 ».Change the Name and Description properties to "Reader Support Tickets" and "View everything in the subscription and also open support tickets."

    Votre fichier JSON doit ressembler à ceci :Your JSON file should look like the following:

    {
      "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.To create the new custom role, use the New-AzRoleDefinition command and specify the JSON role definition file.

    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.The new custom role is now available in the Azure portal and can be assigned to users, groups, or service principals just like built-in roles.

Répertorier les rôles personnalisésList custom roles

  • Pour lister tous vos rôles personnalisés, utilisez la commande Get-AzRoleDefinition.To list all your custom roles, use the Get-AzRoleDefinition command.

    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.You can also see the custom role in the Azure portal.

    capture d’écran d’un rôle personnalisé importé dans le portail Azure

Mettre à jour un rôle personnaliséUpdate a custom role

Pour mettre à jour le rôle personnalisé, vous pouvez mettre à jour le fichier JSON ou utiliser l’objet PSRoleDefinition.To update the custom role, you can update the JSON file or use the PSRoleDefinition object.

  1. Pour mettre à jour le fichier JSON, utilisez la commande Get-AzRoleDefinition afin d’afficher le rôle personnalisé au format JSON.To update the JSON file, use the Get-AzRoleDefinition command to output the custom role in JSON format.

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

  3. Dans Actions, ajoutez l’opération pour créer et gérer les déploiements de groupes de ressources "Microsoft.Resources/deployments/*".In Actions, add the operation to create and manage resource group deployments "Microsoft.Resources/deployments/*".

    Votre fichier JSON mis à jour doit ressembler à ceci :Your updated JSON file should look like the following:

    {
      "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.To update the custom role, use the Set-AzRoleDefinition command and specify the updated JSON file.

    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.To use the PSRoleDefintion object to update your custom role, first use the Get-AzRoleDefinition command to get the role.

    $role = Get-AzRoleDefinition "Reader Support Tickets"
    
  6. Appelez la méthode Add pour ajouter l’opération de lecture des paramètres de diagnostic.Call the Add method to add the operation to read diagnostic settings.

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

    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éDelete a custom role

  1. Utilisez la commande Get-AzRoleDefinition pour obtenir l’ID du rôle personnalisé.Use the Get-AzRoleDefinition command to get the ID of the custom role.

    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é.Use the Remove-AzRoleDefinition command and specify the role ID to delete the custom role.

    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.When asked to confirm, type Y.

Étapes suivantesNext steps