Comment créer un role RBAC personnalisé dans Microsoft Azure



L'exemple montré ci-dessous l'utilisateur auquel ce rôle sera assigné aura seulement les droits de lecture sur les ressources contenue dans les groupes de ressources, mais il aura les pleins droits pour le support.

Le management groupe permettra de regrouper toutes les souscriptions qui existent dans un tenant pour facilement les gérer et aussi comme le montre cet exemple de pourvoir ajouter le rôle RBAC à toutes les souscriptions a la fois.



"Name": "Role Tech Lead(Custom)", 
"IsCustom": true, 
"Description": "Allows to create support requests", 
"Actions": [ "Microsoft.Resources/subscriptions/resourceGroups/read", 
"Microsoft.Support/*" ], 
"NotActions": [ ], 
"AssignableScopes": [ "/providers/Microsoft.Management/managementGroups/nom_du_management_groupe",
 "/subscriptions/SUBSCRIPTION_ID" ]
}


Vous devez modifier les valeurs des clés suivantes :

"Name"  : nom du rôle customisé
"IsCustom" : true (pour le mettre dans la catégorie des rôles personnalisés)
"AssignableScopes" : étendue du nouveau rôle personnalisé 


Pour ce qui est SUBSCRIPTION_ID vous devez la remplacer avec l'ID de votre souscription Microsoft Azure.

Remarque : il n'est pas obligé d'avoir un management groupe pour créer un rôle RBAC personnalisé, ce dernier et comme cité précédemment est juste pour faciliter la gestion des souscriptions Azure.

Après avoir modifié le fichier pour correspondre a votre environnement enregistrez le sous l'extension .txt puis uploader le vers azure en utilisant le cloud shell inclus dans le portail de la plateforme Microsoft Azure.


Après s'etre connecté a Azure cloud shell chosissez Powershell comme langage dee scripting 

Remarque : si c'est la première fois que vous vous connectez, il vous sera demander de créer un compte de stockage.



Uploadez le fichier texte que vous avez enregistré en cliquant sur l'icône montré dans l'image ci-dessous.


Après ça exécuter la commande suivante : 

New-AzRoleDefinition -InputFile $HOME/rbac_role.txt

rbac_role.txt étant le nom de mon fichier.

Le résultat de la commande sera un retour de type JSON qui vous donnera les propriétés du nouveau rôle que vous venez d'ajouter.









Voilà comme illustré dans l'image ci-dessous vous pourrez voir que le rôle personnalisé a été bien créé et ajouté a notre souscription. 


Autre exemple  de RBAC customisé avec la syntaxe JSON

dans l'exemple montré ci-dessous permettra la création d'un rôle qui donnera a un utilisateur d'éteindre et d'allumer une machine virtuelle dans la souscription ou ce rôle sera ajouté 

La différence avec le premier exemple cité précédemment est que cet exemple ne s'applique pas sur un management groupe qui contient des souscription et que l'étendue du rôle est sur toute la souscription.

Contrairement au premier dans lequel certaines taches on était défini dans les ressources groupes et d'autres sur toute la souscription



{
"Name":"Azure VM admin",
"Description":"Lets you view everything and stop virtual machine instances.",
"Actions":[

"*/read",

"Microsoft.Compute/virtualMachines/powerOff/action",

"Microsoft.Compute/virtualMachines/start/action"
],
"NotActions":[],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes":[
"/subscriptions/SubscriptionID"
]

}

Thanks for your comment