Partager via


New-AzureRmRoleDefinition

Crée un rôle personnalisé dans Azure RBAC. Fournissez un fichier de définition de rôle JSON ou un objet PSRoleDefinition en tant qu’entrée. Tout d’abord, utilisez la commande Get-AzureRmRoleDefinition pour générer un objet de définition de rôle de référence. Ensuite, modifiez ses propriétés en fonction des besoins. Enfin, utilisez cette commande pour créer un rôle personnalisé à l’aide de la définition de rôle.

Avertissement

Le module AzureRM PowerShell a été officiellement déprécié le 29 février 2024. Les utilisateurs sont invités à migrer d’AzureRM vers le module Az PowerShell afin de s’assurer d’une prise en charge et des mises à jour continues.

Il est possible que le module AzureRM fonctionne encore, mais il ne fait plus l’objet de maintenance ni de support. L’utilisateur peut continuer à s’en servir s’il le souhaite, à ses propres risques. Consultez nos ressources sur la migration pour obtenir des conseils sur la transition vers le module Az.

Syntaxe

New-AzureRmRoleDefinition
   [-InputFile] <String>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzureRmRoleDefinition
   [-Role] <PSRoleDefinition>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Description

L’applet de commande New-AzureRmRoleDefinition crée un rôle personnalisé dans le contrôle d’accès en fonction du rôle Azure. Fournissez une définition de rôle en tant qu’entrée à la commande en tant que fichier JSON ou objet PSRoleDefinition. La définition de rôle d’entrée DOIT contenir les propriétés suivantes :

  1. DisplayName : nom du rôle personnalisé
  2. Description : brève description du rôle qui récapitule l’accès accordé par le rôle.
  3. Actions : ensemble d’opérations auxquelles le rôle personnalisé accorde l’accès. Utilisez Get-AzureRmProviderOperation pour obtenir l’opération pour les fournisseurs de ressources Azure qui peuvent être sécurisés à l’aide d’Azure RBAC. Voici quelques chaînes d’opération valides :
  • « */read » accorde l’accès aux opérations de lecture de tous les fournisseurs de ressources Azure.
  • « Microsoft.Network/*/read » accorde l’accès aux opérations de lecture pour tous les types de ressources du fournisseur de ressources Microsoft.Network d’Azure.
  • « Microsoft.Compute/virtualMachines/* » accorde l’accès à toutes les opérations de machines virtuelles et à ses types de ressources enfants.
  1. AssignableScopes : ensemble d’étendues (abonnements Azure ou groupes de ressources) dans lesquelles le rôle personnalisé sera disponible pour l’affectation. À l’aide de AssignableScopes, vous pouvez rendre le rôle personnalisé disponible pour l’attribution uniquement dans les abonnements ou les groupes de ressources qui en ont besoin, et non encombrer l’expérience utilisateur pour le reste des abonnements ou des groupes de ressources. Voici quelques étendues assignables valides :
  • « /subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e », « /subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624 » : rend le rôle disponible pour l’attribution dans deux abonnements.
  • « /subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e » : rend le rôle disponible pour l’attribution dans un seul abonnement.
  • « /subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network » : rend le rôle disponible uniquement pour l’attribution dans le groupe de ressources Réseau. La définition de rôle d’entrée PEUT contenir les propriétés suivantes :
  1. NotActions : ensemble d’opérations qui doivent être exclues des actions pour déterminer les actions effectives pour le rôle personnalisé. S’il existe une opération spécifique à laquelle vous ne souhaitez pas accorder l’accès dans un rôle personnalisé, il est pratique d’utiliser NotActions pour l’exclure, plutôt que de spécifier toutes les opérations autres que cette opération spécifique dans Actions.
  2. DataActions : ensemble d’opérations de données auxquelles le rôle personnalisé accorde l’accès.
  3. NotDataActions : ensemble d’opérations qui doivent être exclues des DataActions pour déterminer les actions de données effectives pour le rôle personnalisé. S’il existe une opération de données spécifique à laquelle vous ne souhaitez pas accorder l’accès dans un rôle personnalisé, il est pratique d’utiliser NotDataActions pour l’exclure, plutôt que de spécifier toutes les opérations autres que cette opération spécifique dans Actions. REMARQUE : Si un utilisateur reçoit un rôle qui spécifie une opération dans NotActions et qu’un autre rôle accorde également l’accès à la même opération, l’utilisateur pourra effectuer cette opération. NotActions n’est pas une règle de refus : il s’agit simplement d’un moyen pratique de créer un ensemble d’opérations autorisées lorsque des opérations spécifiques doivent être exclues. Voici un exemple de définition de rôle json qui peut être fourni en tant qu’entrée { « Nom » : « Rôle mis à jour », « Description » : « Peut surveiller toutes les ressources et démarrer et redémarrer des machines virtuelles », « Actions » : [ « /read », « Microsoft.ClassicCompute/virtualmachines/restart/action », « Microsoft.ClassicCompute/virtualmachines/start/action » ], « NotActions » : [ « /write » ], « DataActions » : [ « Microsoft.Storage/storageAccounts/blobServices/containers/blobs/blobs/read » ], « NotDataActions » : [ « Microsoft. Storage/storageAccounts/blobServices/containers/blobs/write » ], « AssignableScopes » : ["/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"] }

Exemples

Créer à l’aide de PSRoleDefinitionObject

PS C:\> $role = Get-AzureRmRoleDefinition -Name "Virtual Machine Contributor"
          PS C:\> $role.Id = $null
          PS C:\> $role.Name = "Virtual Machine Operator"
          PS C:\> $role.Description = "Can monitor, start, and restart virtual machines."
          PS C:\> $role.Actions.RemoveRange(0,$role.Actions.Count)
          PS C:\> $role.Actions.Add("Microsoft.Compute/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/start/action")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/restart/action")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/downloadRemoteDesktopConnectionFile/action")
          PS C:\> $role.Actions.Add("Microsoft.Network/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Storage/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Authorization/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/read")
          PS C:\> $role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/resources/read")
          PS C:\> $role.Actions.Add("Microsoft.Insights/alertRules/*")
          PS C:\> $role.Actions.Add("Microsoft.Support/*")
          PS C:\> $role.AssignableScopes.Clear()
          PS C:\> $role.AssignableScopes.Add("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")

          PS C:\> New-AzureRmRoleDefinition -Role $role

Créer à l’aide d’un fichier JSON

PS C:\> New-AzureRmRoleDefinition -InputFile C:\Temp\roleDefinition.json

Paramètres

-DefaultProfile

Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure

Type:IAzureContextContainer
Alias:AzureRmContext, AzureCredential
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputFile

Nom de fichier contenant une définition de rôle json unique.

Type:String
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Role

Objet de définition de rôle.

Type:PSRoleDefinition
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

None

Sorties

PSRoleDefinition

Notes

Mots clés : azure, azurerm, arm, resource, management, manager, resource, group, template, deployment