Tutoriel : Créer un rôle personnalisé Azure à l’aide d’Azure CLITutorial: Create an Azure custom role using Azure CLI

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 CLI.For this tutorial, you create a custom role named Reader Support Tickets using Azure CLI. 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.

PrérequisPrerequisites

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

Connectez-vous à Azure CLISign in to Azure CLI

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

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

Pour créer un rôle personnalisé, le plus simple consiste à débuter avec un modèle JSON, à ajouter vos modifications, puis à créer un nouveau rôle.The easiest way to create a custom role is to start with a JSON template, add your changes, and then create a new role.

  1. Passez en revue la liste des opérations pour le fournisseur de ressources Microsoft.Support.Review 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.

    OpérationOperation DescriptionDescription
    Microsoft.Support/register/actionMicrosoft.Support/register/action S’inscrit auprès du fournisseur de ressources de support.Registers to Support Resource Provider
    Microsoft.Support/supportTickets/readMicrosoft.Support/supportTickets/read Récupère les détails du ticket de support (notamment l’état, la gravité, les détails du contact et les communications) ou la liste des tickets de support des abonnements.Gets Support Ticket details (including status, severity, contact details and communications) or gets the list of Support Tickets across subscriptions.
    Microsoft.Support/supportTickets/writeMicrosoft.Support/supportTickets/write Crée ou met à jour un ticket de support.Creates or Updates a Support Ticket. Vous pouvez créer un ticket de support pour les problèmes techniques ou les problèmes liés à la facturation, aux quotas ou à la gestion des abonnements.You can create a Support Ticket for Technical, Billing, Quotas or Subscription Management related issues. Vous pouvez mettre à jour la gravité des problèmes, les détails du contact et les communications pour les tickets de support existants.You can update severity, contact details and communications for existing support tickets.
  2. Créez un fichier nommé ReaderSupportRole.json.Create a new file named ReaderSupportRole.json.

  3. Ouvrez ReaderSupportRole.json dans un éditeur et ajoutez le code JSON suivant.Open ReaderSupportRole.json in an editor and add the following JSON.

    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": "",
      "IsCustom": true,
      "Description": "",
      "Actions": [],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/{subscriptionId1}"
      ]
    }
    
  4. Ajoutez les opérations suivantes à la propriété Actions.Add the following operations to the Actions property. Ces actions permettent à l’utilisateur de consulter tous les éléments de l’abonnement et de créer des tickets de support.These actions allow the user to view everything in the subscription and create support tickets.

    "*/read",
    "Microsoft.Support/*"
    
  5. Obtenez l’ID de votre abonnement à l’aide de la commande az account list.Get the ID of your subscription using the az account list command.

    az account list --output table
    
  6. Dans AssignableScopes, remplacez {subscriptionId1} par votre ID d’abonnement.In AssignableScopes, replace {subscriptionId1} with your subscription ID.

    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. 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"
      ]
    }
    
  8. Pour créer le rôle personnalisé, utilisez la commande az role definition create et spécifiez le fichier de définition de rôle JSON.To create the new custom role, use the az role definition create command and specify the JSON role definition file.

    az role definition create --role-definition "~/CustomRoles/ReaderSupportRole.json"
    
    {
      "additionalProperties": {},
      "assignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ],
      "description": "View everything in the subscription and also open support tickets.",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
      "name": "22222222-2222-2222-2222-222222222222",
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Support/*"
          ],
          "additionalProperties": {},
          "dataActions": [],
          "notActions": [],
          "notDataActions": []
        }
      ],
      "roleName": "Reader Support Tickets",
      "roleType": "CustomRole",
      "type": "Microsoft.Authorization/roleDefinitions"
    }
    

    Le nouveau rôle personnalisé est maintenant disponible 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 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 répertorier tous vos rôles personnalisés, utilisez la commande az role definition list avec le paramètre --custom-role-only.To list all your custom roles, use the az role definition list command with the --custom-role-only parameter.

    az role definition list --custom-role-only true
    
    [
      {
        "additionalProperties": {},
        "assignableScopes": [
          "/subscriptions/00000000-0000-0000-0000-000000000000"
        ],
        "description": "View everything in the subscription and also open support tickets.",
        "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
        "name": "22222222-2222-2222-2222-222222222222",
        "permissions": [
          {
            "actions": [
              "*/read",
              "Microsoft.Support/*",
              "Microsoft.Resources/deployments/*",
              "Microsoft.Insights/diagnosticSettings/*/read"
            ],
            "additionalProperties": {},
            "dataActions": [],
            "notActions": [],
            "notDataActions": []
          }
        ],
        "roleName": "Reader Support Tickets",
        "roleType": "CustomRole",
        "type": "Microsoft.Authorization/roleDefinitions"
      }
    ]
    

    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é, mettez à jour le fichier JSON puis mettez à jour le rôle personnalisé.To update the custom role, update the JSON file and then update the custom role.

  1. Ouvrez le fichier ReaderSupportRole.json.Open the ReaderSupportRole.json file.

  2. 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/*". Veillez à inclure une virgule après l’opération précédente.Be sure to include a comma after the previous operation.

    Votre fichier JSON mis à jour doit ressembler à ceci :Your updated 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/*",
        "Microsoft.Resources/deployments/*"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ]
    }
    
  3. Pour mettre à jour le rôle personnalisé, utilisez la commande az role definition update et spécifiez le fichier JSON mis à jour.To update the custom role, use the az role definition update command and specify the updated JSON file.

    az role definition update --role-definition "~/CustomRoles/ReaderSupportRole.json"
    
    {
      "additionalProperties": {},
      "assignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ],
      "description": "View everything in the subscription and also open support tickets.",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
      "name": "22222222-2222-2222-2222-222222222222",
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Support/*",
            "Microsoft.Resources/deployments/*"
          ],
          "additionalProperties": {},
          "dataActions": [],
          "notActions": [],
          "notDataActions": []
        }
      ],
      "roleName": "Reader Support Tickets",
      "roleType": "CustomRole",
      "type": "Microsoft.Authorization/roleDefinitions"
    }
    

Supprimer un rôle personnaliséDelete a custom role

  • Utilisez la commande az role definition delete et spécifiez le nom de rôle ou l’ID de rôle pour supprimer le rôle personnalisé.Use the az role definition delete command and specify the role name or role ID to delete the custom role.

    az role definition delete --name "Reader Support Tickets"
    

Étapes suivantesNext steps