Partager via


Créer ou mettre à jour des rôles personnalisés Azure en utilisant Bicep

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. Cet article explique comment créer ou mettre à jour un rôle personnalisé en utilisant Bicep.

Bicep est un langage spécifique à un domaine (DSL) qui utilise la syntaxe déclarative pour déployer des ressources Azure. Il fournit une syntaxe concise, une cohérence des types fiable et une prise en charge de la réutilisation du code. Bicep offre la meilleure expérience de création pour vos solutions d’infrastructure en tant que code dans Azure.

Pour créer un rôle personnalisé, vous spécifiez un nom de rôle, les autorisations du rôle et l’emplacement où le rôle peut être utilisé. Dans cet article, vous créez un rôle nommé Custom Role - RG Reader avec des autorisations de ressources qui peuvent être attribuées au niveau d’une étendue d’abonnement ou d’une étendue inférieure.

Prérequis

Pour créer un rôle personnalisé, vous devez disposer des autorisations de créer des rôles personnalisés, comme Administrateur de l’accès utilisateur.

Vous devez aussi avoir un abonnement Azure actif. Si vous n’en avez pas, vous pouvez créer un compte gratuit avant de commencer.

Examiner le fichier Bicep

Le fichier Bicep utilisé dans cet article provient des Modèles de démarrage rapide Azure. Le fichier Bicep a quatre paramètres et une section de ressources. Les quatre paramètres sont :

  • Tableau d’actions avec la valeur par défaut ["Microsoft.Resources/subscriptions/resourceGroups/read"].
  • Tableau de notActions avec une valeur par défaut vide.
  • Nom de rôle avec la valeur par défaut Custom Role - RG Reader.
  • Description du rôle avec la valeur par défaut Subscription Level Deployment of a Role Definition.

L’étendue d’attribution de ce rôle personnalisé est définie sur l’abonnement actuel.

Un rôle personnalisé nécessite un ID unique. L’ID peut être généré avec la fonction guid(). Étant donné qu’un rôle personnalisé nécessite également un nom d’affichage unique pour le locataire, vous pouvez utiliser le nom du rôle comme paramètre pour la fonction guid(), afin de créer un GUID déterministe. Un GUID déterministe est utile si vous devez ultérieurement mettre à jour le rôle personnalisé à l’aide du même fichier Bicep.

targetScope = 'subscription'

@description('Array of actions for the roleDefinition')
param actions array = [
  'Microsoft.Resources/subscriptions/resourceGroups/read'
]

@description('Array of notActions for the roleDefinition')
param notActions array = []

@description('Friendly name of the role definition')
param roleName string = 'Custom Role - RG Reader'

@description('Detailed description of the role definition')
param roleDescription string = 'Subscription Level Deployment of a Role Definition'

var roleDefName = guid(roleName)

resource roleDef 'Microsoft.Authorization/roleDefinitions@2022-04-01' = {
  name: roleDefName
  properties: {
    roleName: roleName
    description: roleDescription
    type: 'customRole'
    permissions: [
      {
        actions: actions
        notActions: notActions
      }
    ]
    assignableScopes: [
      subscription().id
    ]
  }
}

La ressource définie dans le fichier Bicep est :

Déployer le fichier Bicep

  1. Enregistrez le fichier Bicep en tant que main.bicep sur votre ordinateur local.

  2. Créez une variable nommée myActionsavec les actions pour roleDefinition.

    $myActions='["Microsoft.Resources/subscriptions/resourceGroups/read"]'
    
  3. Déployez le fichier Bicep à l’aide d’Azure CLI ou d’Azure PowerShell.

    az deployment sub create --location eastus --name customRole --template-file ./main.bicep --parameters actions=$myActions
    

Une fois le déploiement terminé, un message doit s’afficher pour indiquer que le déploiement a réussi.

Vérifier les ressources déployées

Utilisez le portail Azure, Azure CLI ou Azure PowerShell pour vérifier que le rôle personnalisé a été créé.

az role definition list --name "Custom Role - RG Reader"

Mettre à jour un rôle personnalisé

À l’instar de la création d’un rôle personnalisé, vous pouvez mettre à jour un rôle personnalisé existant en utilisant Bicep. Pour mettre à jour un rôle personnalisé, vous devez spécifier le rôle que vous souhaitez mettre à jour. Si vous avez créé précédemment le rôle personnalisé dans Bicep avec un ID de rôle unique qui est déterministe, vous pouvez utiliser le même fichier Bicep et spécifier le rôle personnalisé en utilisant simplement le nom d’affichage.

  1. Spécifiez les actions mises à jour.

    $myActions='["Microsoft.Resources/resources/read","Microsoft.Resources/subscriptions/resourceGroups/read"]'
    
  2. Utilisez Azure CLI ou Azure PowerShell pour mettre à jour le rôle personnalisé.

    az deployment sub create --location eastus --name customrole --template-file ./main.bicep --parameters actions=$myActions roleName="Custom Role - RG Reader"
    

    Remarque

    La propagation du rôle personnalisé mis à jour peut prendre plusieurs minutes.

Nettoyer les ressources

Quand vous n’en avez plus besoin, utilisez le portail Azure, Azure CLI ou Azure PowerShell pour supprimer le rôle personnalisé.

az role definition delete --name "Custom Role - RG Reader"

Étapes suivantes