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éconseillé depuis 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.
Bien que le module AzureRM puisse toujours fonctionner, il n’est plus conservé ou pris en charge, plaçant toute utilisation continue à la discrétion et au risque de l’utilisateur. 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 :
- DisplayName : nom du rôle personnalisé
- Description : brève description du rôle qui récapitule l’accès accordé par le rôle.
- 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.
- 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 :
- 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.
- DataActions : ensemble d’opérations de données auxquelles le rôle personnalisé accorde l’accès.
- 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 entrée { « Name » : « Updated Role », « Description » : « Can monitor all resources and start and restart virtual machines », « Actions » : [ « /read », « Microsoft.ClassicCompute/virtualmachines/restart/action », « Microsoft.ClassicCompute/virtualmachines/start/action » ], « NotActions » : [ « /write » ], « DataActions » : « Microsoft.Stockage/storageAccounts/blobServices/containers/blobs/read » ], « NotDataActions » : [ « Microsoft.Stockage/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
Notes
Mots clés : azure, azurerm, arm, resource, management, manager, resource, group, template, deployment