Tutoriel : Créer un rôle personnalisé Azure à l’aide d’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. Pour ce tutoriel, vous allez créer un rôle personnalisé nommé Reader Support Tickets à l’aide d’Azure CLI. 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.

Prérequis

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

Connectez-vous à Azure CLI

Connectez-vous à Azure CLI.

Créer un rôle personnalisé

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.

  1. Passez en revue la liste des actions pour le fournisseur de ressources Microsoft.Support. Il est utile de connaître les actions qui sont disponibles pour créer vos autorisations.

    Action Description
    Microsoft.Support/register/action S’inscrit auprès du fournisseur de ressources de support.
    Microsoft.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.
    Microsoft.Support/supportTickets/write Crée ou met à jour un ticket de support. 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. Vous pouvez mettre à jour la gravité des problèmes, les détails du contact et les communications pour les tickets de support existants.
  2. Créez un fichier nommé ReaderSupportRole.json.

  3. Ouvrez ReaderSupportRole.json dans un éditeur et ajoutez le code JSON suivant.

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

    {
      "Name": "",
      "IsCustom": true,
      "Description": "",
      "Actions": [],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/{subscriptionId1}"
      ]
    }
    
  4. Ajoutez les actions suivantes à la propriété Actions. Ces actions permettent à l’utilisateur de consulter tous les éléments de l’abonnement et de créer des tickets de support.

    "*/read",
    "Microsoft.Support/*"
    
  5. Obtenez l’ID de votre abonnement à l’aide de la commande az account list.

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

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

  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 ».

    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"
      ]
    }
    
  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.

    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.

Répertorier les rôles personnalisés

  • Pour répertorier tous vos rôles personnalisés, utilisez la commande az role definition list avec le paramètre --custom-role-only.

    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.

    screenshot of custom role imported in the Azure portal

Mettre à jour un rôle personnalisé

Pour mettre à jour le rôle personnalisé, mettez à jour le fichier JSON puis mettez à jour le rôle personnalisé.

  1. Ouvrez le fichier ReaderSupportRole.json.

  2. Dans Actions, ajoutez l’action pour créer et gérer des déploiements de groupes de ressources "Microsoft.Resources/deployments/*". Veillez à inclure une virgule après l’action précédente.

    Votre fichier JSON mis à jour doit ressembler à ceci :

    {
      "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.

    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é

  • 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é.

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

Étapes suivantes