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 :
- Autorisations pour créer des rôles personnalisés, tels que Administrateur de l’accès utilisateur
- Azure Cloud Shell ou Azure PowerShell
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.
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...
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
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": [ "/" ] }
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.Obtenez l’ID de votre abonnement à l’aide de la commande Get-AzSubscription.
Get-AzSubscription
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.
Supprimez la ligne de propriété
Id
et affectez la valeurtrue
à la propriétéIsCustom
.Remplacez les valeurs de propriétés
Name
etDescription
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" ] }
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.
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
.
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
Ouvrez le fichier dans un éditeur.
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" ] }
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}
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"
Appelez la méthode
Add
pour ajouter l’action de lecture des paramètres de diagnostic.$role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
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é
Utilisez la commande Get-AzRoleDefinition pour obtenir l’ID du rôle personnalisé.
Get-AzRoleDefinition "Reader Support Tickets"
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"):
Lorsque vous êtes invité à confirmer votre choix, saisissez Y.