New-AzRoleDefinition
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-AzRoleDefinition pour générer un objet de définition de rôle de base. 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.
Syntaxe
InputFileParameterSet
New-AzRoleDefinition
[-InputFile] <String>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
RoleDefinitionParameterSet
New-AzRoleDefinition
[-Role] <PSRoleDefinition>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Description
L’applet de commande New-AzRoleDefinition crée un rôle personnalisé dans Azure Role-Based Access Control. 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 :
- Nom : nom du rôle personnalisé
- Description : brève description du rôle qui récapitule l’accès accordé par le rôle.
- Autorisations : tableau d’objets d’autorisation, chacun contenant actions et/ou DataActions.
Utilisez Get-AzProviderOperation pour obtenir l’opération pour Azure fournisseurs de ressources qui peuvent être sécurisés à l’aide de 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 Microsoft. Fournisseur de ressources réseau de 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 (Azure abonnements ou groupes de ressources) dans lesquelles le rôle personnalisé sera disponible pour l’affectation.
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.
Chaque objet d’autorisation dans le tableau d’autorisations PEUT contenir :
- Actions : ensemble d’opérations de plan de contrôle auxquelles le rôle personnalisé accorde l’accès.
- NotActions : ensemble d’opérations qui doivent être exclues des actions pour déterminer les actions effectives.
- DataActions : ensemble d’opérations de plan de données auxquelles le rôle personnalisé accorde l’accès.
- NotDataActions : ensemble d’opérations qui doivent être exclues des DataActions.
- Condition : condition Attribute-Based Access Control (ABAC) qui limite les autorisations.
- ConditionVersion : version de la syntaxe de condition, par exemple « 2.0 » (obligatoire si la condition est spécifiée).
Note
L’API RBAC Azure ne prend actuellement en charge qu’un seul élément dans le tableau Autorisations lors de la création de rôles personnalisés. Bien que le modèle de données prenne en charge plusieurs entrées d’autorisation, les opérations de création doivent utiliser exactement un seul objet d’autorisation.
Voici un exemple de définition de rôle JSON qui peut être fourni en entrée : { « Name » : « Custom VM Operator », « Description » : « Can monitor all resources and start and restart virtual machines », « Permissions » : [ { « Actions » : [ « /read », « Microsoft. Compute/virtualMachines/restart/action », « Microsoft. Compute/virtualMachines/start/action » ], « NotActions » : [ « /write » ], « DataActions » : [ « Microsoft. Storage/storageAccounts/blobServices/containers/blobs/read » ], « NotDataActions » : [ « Microsoft. Storage/storageAccounts/blobServices/containers/blobs/write » ] } ], « AssignableScopes » : ["/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"] }
Exemples
Exemple 1 : Créer un rôle personnalisé à l’aide de l’objet PSRoleDefinition
$role = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition
$role.Name = 'Virtual Machine Operator'
$role.Description = 'Can monitor, start, and restart virtual machines.'
$role.IsCustom = $true
$role.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
$permission = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSPermission
$permission.Actions = @(
"Microsoft.Compute/*/read"
"Microsoft.Compute/virtualMachines/start/action"
"Microsoft.Compute/virtualMachines/restart/action"
"Microsoft.Network/*/read"
"Microsoft.Storage/*/read"
"Microsoft.Authorization/*/read"
"Microsoft.Resources/subscriptions/resourceGroups/read"
"Microsoft.Resources/subscriptions/resourceGroups/resources/read"
"Microsoft.Insights/alertRules/*"
"Microsoft.Support/*"
)
$role.Permissions = @($permission)
New-AzRoleDefinition -Role $role
Crée un rôle personnalisé nommé « Opérateur de machine virtuelle » avec les actions spécifiées.
Exemple 2 : Créer un rôle personnalisé à l’aide d’un fichier JSON
New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
Crée un rôle personnalisé à partir d’un fichier de définition JSON.
Paramètres
-DefaultProfile
Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure
Propriétés du paramètre
| Type: | IAzureContextContainer |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | AzContext, AzureRmContext, AzureCredential |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-InputFile
Nom de fichier contenant une définition de rôle json unique.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
InputFileParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Role
Objet de définition de rôle.
Propriétés du paramètre
| Type: | PSRoleDefinition |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
RoleDefinitionParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-SkipClientSideScopeValidation
Si elle est spécifiée, ignorez la validation de l’étendue côté client.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
None
Sorties
PSRoleDefinition
Notes
Mots clés : azure, azurerm, arm, resource, management, manager, resource, group, template, deployment