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 :

  1. Nom : 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. 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.
  4. 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 :

  1. Actions : ensemble d’opérations de plan de contrôle auxquelles le rôle personnalisé accorde l’accès.
  2. NotActions : ensemble d’opérations qui doivent être exclues des actions pour déterminer les actions effectives.
  3. DataActions : ensemble d’opérations de plan de données auxquelles le rôle personnalisé accorde l’accès.
  4. NotDataActions : ensemble d’opérations qui doivent être exclues des DataActions.
  5. Condition : condition Attribute-Based Access Control (ABAC) qui limite les autorisations.
  6. 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