New-AzPolicyAssignment
Crée ou met à jour une attribution de stratégie.
Syntaxe
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
[-PolicyDefinition <PSObject>]
[-DefinitionVersion <String>]
-PolicyParameterObject <Hashtable>
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
[-PolicyDefinition <PSObject>]
[-DefinitionVersion <String>]
-PolicyParameter <String>
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
-PolicyDefinition <PSObject>
[-DefinitionVersion <String>]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet de commande New-AzPolicyAssignment crée ou met à jour une attribution de stratégie avec l’étendue et le nom donnés. Les affectations de stratégie s’appliquent à toutes les ressources contenues dans leur étendue. Par exemple, lorsque vous affectez une stratégie à l’étendue du groupe de ressources, cette stratégie s’applique à toutes les ressources du groupe.
Exemples
Exemple 1 : Attribution de stratégie au niveau de l’abonnement
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)"
La première commande obtient un abonnement nommé Subscription01 à l’aide de l’applet de commande Get-AzSubscription et la stocke dans la variable $Subscription. La deuxième commande obtient la définition de stratégie nommée VirtualMachinePolicy à l’aide de l’applet de commande Get-AzPolicyDefinition et la stocke dans la variable $Policy. La commande finale affecte la stratégie dans $Policy au niveau de l’abonnement identifié par la chaîne d’étendue de l’abonnement.
Exemple 2 : Affectation de stratégie au niveau du groupe de ressources
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId
La première commande obtient un groupe de ressources nommé ResourceGroup11 à l’aide de l’applet de commande Get-AzResourceGroup et le stocke dans la variable $ResourceGroup. La deuxième commande obtient la définition de stratégie nommée VirtualMachinePolicy à l’aide de l’applet de commande Get-AzPolicyDefinition et la stocke dans la variable $Policy. La commande finale affecte la stratégie dans $Policy au niveau du groupe de ressources identifié par la propriété ResourceId de $ResourceGroup.
Exemple 3 : Affectation de stratégie au niveau du groupe de ressources avec l’objet de paramètre de stratégie
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.DisplayName -eq 'Allowed locations'}
$Locations = Get-AzLocation | Where-Object displayname -like '*east*'
$AllowedLocations = @{'listOfAllowedLocations'=($Locations.location)}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameterObject $AllowedLocations
La première commande obtient un groupe de ressources nommé ResourceGroup11 à l’aide de l’applet de commande Get-AzResourceGroup. La commande stocke cet objet dans la variable $ResourceGroup. La deuxième commande obtient la définition de stratégie intégrée pour les emplacements autorisés à l’aide de l’applet de commande Get-AzPolicyDefinition. La commande stocke cet objet dans la variable $Policy. Les troisième et quatrième commandes créent un objet contenant toutes les régions Azure avec « est » dans le nom. Les commandes stockent cet objet dans la variable $AllowedLocations. La commande finale affecte la stratégie dans $Policy au niveau d’un groupe de ressources à l’aide de l’objet de paramètre de stratégie dans $AllowedLocations. La propriété ResourceId de $ResourceGroup identifie le groupe de ressources.
Exemple 4 : Affectation de stratégie au niveau du groupe de ressources avec le fichier de paramètres de stratégie
'{
"listOfAllowedLocations": {
"value": [
"westus",
"westeurope",
"japanwest"
]
}
}' > .\AllowedLocations.json
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.DisplayName -eq 'Allowed locations'}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameter .\AllowedLocations.json
La première commande crée un fichier de paramètres appelé AllowedLocations.json dans le répertoire de travail local. La deuxième commande obtient un groupe de ressources nommé ResourceGroup11 à l’aide de l’applet de commande Get-AzResourceGroup et le stocke dans la variable $ResourceGroup. La troisième commande obtient la définition de stratégie intégrée pour les emplacements autorisés à l’aide de l’applet de commande Get-AzPolicyDefinition et la stocke dans la variable $Policy. La commande finale affecte la stratégie dans $Policy au groupe de ressources identifié par la propriété ResourceId de $ResourceGroup à l’aide du fichier de paramètres de stratégie AllowedLocations.json à partir du répertoire de travail local.
Exemple 5 : Attribution de stratégie avec une identité managée affectée par le système
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'SystemAssigned'
La première commande obtient un groupe de ressources nommé ResourceGroup11 à l’aide de l’applet de commande Get-AzResourceGroup et le stocke dans la variable $ResourceGroup. La deuxième commande obtient la définition de stratégie nommée VirtualMachinePolicy à l’aide de l’applet de commande Get-AzPolicyDefinition et la stocke dans la variable $Policy. La commande finale affecte la stratégie dans $Policy au groupe de ressources. Une identité managée affectée par le système est automatiquement créée et affectée à l’attribution de stratégie.
Exemple 6 : Attribution de stratégie avec une identité managée affectée par l’utilisateur
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$UserAssignedIdentity = Get-AzUserAssignedIdentity -ResourceGroupName 'ResourceGroup1' -Name 'UserAssignedIdentity1'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'UserAssigned' -IdentityId $UserAssignedIdentity.Id
La première commande obtient un groupe de ressources nommé ResourceGroup11 à l’aide de l’applet de commande Get-AzResourceGroup et le stocke dans la variable $ResourceGroup. La deuxième commande obtient la définition de stratégie nommée VirtualMachinePolicy à l’aide de l’applet de commande Get-AzPolicyDefinition et la stocke dans la variable $Policy. La troisième commande obtient l’identité managée affectée par l’utilisateur nommée UserAssignedIdentity1 à l’aide de l’applet de commande Get-AzUserAssignedIdentity et la stocke dans la variable $UserAssignedIdentity. La commande finale affecte la stratégie dans $Policy au groupe de ressources. L’identité managée affectée par l’utilisateur identifiée par la propriété ID de $UserAssignedIdentity est affectée à l’attribution de stratégie en passant la propriété Id* au paramètre IdentityId.
Exemple 7 : Affectation de stratégie avec une propriété en mode d’application
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)" -EnforcementMode DoNotEnforce
La première commande obtient un abonnement nommé Subscription01 à l’aide de l’applet de commande Get-AzSubscription et la stocke dans la variable $Subscription. La deuxième commande obtient la définition de stratégie nommée VirtualMachinePolicy à l’aide de l’applet de commande Get-AzPolicyDefinition et la stocke dans la variable $Policy. La commande finale affecte la stratégie dans $Policy au niveau de l’abonnement identifié par la chaîne d’étendue de l’abonnement.
L’affectation est définie avec une valeur EnforcementMode de DoNotEnforce, c’est-à-dire que l’effet de stratégie n’est pas appliqué lors de la création ou de la mise à jour des ressources.
Exemple 8 : Attribution de stratégie avec des messages de non-conformité
$PolicySet = Get-AzPolicySetDefinition -Name 'VirtualMachinePolicySet'
$NonComplianceMessages = @(@{Message="Only DsV2 SKUs are allowed."; PolicyDefinitionReferenceId="DefRef1"}, @{Message="Virtual machines must follow cost management best practices."})
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicySetDefinition $PolicySet -NonComplianceMessage $NonComplianceMessages
La première commande obtient la définition de jeu de stratégies nommée VirtualMachinePolicySet à l’aide de l’applet de commande Get-AzPolicySetDefinition et la stocke dans la variable $PolicySet. La deuxième commande crée un tableau de messages de non-conformité. Un message à usage général pour l’ensemble de l’affectation et un message spécifique à une stratégie de restriction de référence SKU dans la définition du jeu de stratégies affecté. La commande finale affecte la définition du jeu de stratégies dans $PolicySet à l’abonnement avec deux messages de non-conformité qui seront affichés si une ressource est refusée par la stratégie.
Exemple 9 : Affectation de stratégie avec sélecteur de ressources
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$ResourceSelector = @{Name = "MyLocationSelector"; Selector = @(@{Kind = "resourceLocation"; In = @("eastus", "eastus2")})}
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -ResourceSelector $ResourceSelector
La première commande obtient la définition de stratégie nommée VirtualMachinePolicy à l’aide de l’applet de commande Get-AzPolicyDefinition et la stocke dans la variable $Policy. La deuxième commande crée un objet sélecteur de ressources qui sera utilisé pour spécifier l’affectation ne doit s’appliquer qu’aux ressources situées dans usa Est ou USA Est 2 et les stocke dans la variable $ResourceSelector. La commande finale affecte la définition de stratégie dans $Policy à l’abonnement avec le sélecteur de ressources spécifié par $ResourceSelector.
Exemple 10 : Affectation de stratégie avec remplacement
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$Selector = @{Kind = "resourceLocation"; In = @("eastus", "eastus2")}
$Override = @(@{Kind = "policyEffect"; Value = 'Disabled'; Selector = @($Selector)})
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Override $Override
La première commande obtient la définition de stratégie nommée VirtualMachinePolicy à l’aide de l’applet de commande Get-AzPolicyDefinition et la stocke dans la variable $Policy. La deuxième commande crée un sélecteur d’emplacement spécifiant les emplacements USA Est ou USA Est 2 et les stocke dans la variable $Selector. La troisième commande crée un objet de remplacement qui sera utilisé pour spécifier que la définition affectée doit avoir un effet Désactivé dans les emplacements identifiés par l’objet $Selector et les stocke dans la variable $Override. La commande finale affecte la définition de stratégie dans $Policy à l’abonnement avec le remplacement spécifié par $Override.
Exemple 11 : [Backcompat] Affectation de stratégie au niveau du groupe de ressources avec l’objet de paramètre de stratégie
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.Properties.DisplayName -eq 'Allowed locations'}
$Locations = Get-AzLocation | Where-Object displayname -like '*east*'
$AllowedLocations = @{'listOfAllowedLocations'=($Locations.location)}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameterObject $AllowedLocations
La première commande obtient un groupe de ressources nommé ResourceGroup11 à l’aide de l’applet de commande Get-AzResourceGroup. La commande stocke cet objet dans la variable $ResourceGroup. La deuxième commande obtient la définition de stratégie intégrée pour les emplacements autorisés à l’aide de l’applet de commande Get-AzPolicyDefinition. La commande stocke cet objet dans la variable $Policy. Les troisième et quatrième commandes créent un objet contenant toutes les régions Azure avec « est » dans le nom. Les commandes stockent cet objet dans la variable $AllowedLocations. La commande finale affecte la stratégie dans $Policy au niveau d’un groupe de ressources à l’aide de l’objet de paramètre de stratégie dans $AllowedLocations. La propriété ResourceId de $ResourceGroup identifie le groupe de ressources.
Exemple 12 : [Backcompat] Affectation de stratégie au niveau du groupe de ressources avec le fichier de paramètres de stratégie
'{
"listOfAllowedLocations": {
"value": [
"westus",
"westeurope",
"japanwest"
]
}
}' > .\AllowedLocations.json
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.Properties.DisplayName -eq 'Allowed locations'}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameter .\AllowedLocations.json
La première commande crée un fichier de paramètres appelé AllowedLocations.json dans le répertoire de travail local. La deuxième commande obtient un groupe de ressources nommé ResourceGroup11 à l’aide de l’applet de commande Get-AzResourceGroup et le stocke dans la variable $ResourceGroup. La troisième commande obtient la définition de stratégie intégrée pour les emplacements autorisés à l’aide de l’applet de commande Get-AzPolicyDefinition et la stocke dans la variable $Policy. La commande finale affecte la stratégie dans $Policy au groupe de ressources identifié par la propriété ResourceId de $ResourceGroup à l’aide du fichier de paramètres de stratégie AllowedLocations.json à partir du répertoire de travail local.
Paramètres
-BackwardCompatible
Provoque le retour d’artefacts à l’aide d’un format hérité plaçant des propriétés propres à une stratégie dans un objet de conteneur de propriétés.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Confirm
Vous demande une confirmation avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-DefaultProfile
Le paramètre DefaultProfile n’est pas fonctionnel. Utilisez le paramètre SubscriptionId lorsqu’il est disponible si vous exécutez l’applet de commande sur un autre abonnement.
Type: | PSObject |
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 |
-DefinitionVersion
Indiquer la version de la définition de stratégie ou de la définition de jeu de stratégies
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Description
Ce message fait partie de la réponse en cas de violation de stratégie.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-DisplayName
Nom complet de l’attribution de stratégie.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-EnforcementMode
Mode d’application de l’attribution de stratégie. Les valeurs possibles sont Default et DoNotEnforce.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-IdentityId
Identité de l’utilisateur associée à la stratégie. Les références de clé de dictionnaire d’identité utilisateur seront des ID de ressource ARM sous la forme : « /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} ».
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-IdentityType
Type d’identité. Il s’agit du seul champ obligatoire lors de l’ajout d’une identité affectée par le système ou l’utilisateur à une ressource.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Location
Emplacement de l’affectation de stratégie. Obligatoire uniquement lors de l’utilisation de l’identité managée.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Metadata
Métadonnées d’attribution de stratégie. Les métadonnées sont un objet ouvert et sont généralement une collection de paires clé-valeur.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Name
Nom de l’attribution de stratégie.
Type: | String |
Alias: | PolicyAssignmentName |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-NonComplianceMessage
Messages qui décrivent pourquoi une ressource n’est pas conforme à la stratégie. Pour construire, consultez la section NOTES pour les propriétés NONCOMPLIANCEMESSAGE et créer une table de hachage.
Type: | PSObject[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-NotScope
Étendues exclues de la stratégie.
Type: | String[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Override
Remplacement de la valeur de propriété de stratégie.
Type: | IOverride[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-PolicyDefinition
Accepter la définition de stratégie ou l’objet de définition de jeu de stratégies
Type: | PSObject |
Alias: | PolicySetDefinition |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-PolicyParameter
Valeurs des paramètres de la règle de stratégie affectée. Les clés sont les noms de paramètres.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-PolicyParameterObject
Valeurs des paramètres de la règle de stratégie affectée. Les clés sont les noms de paramètres.
Type: | Hashtable |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-ResourceSelector
Liste de sélecteurs de ressources pour filtrer les stratégies par propriétés de ressource.
Type: | IResourceSelector[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Scope
Étendue de l’attribution de stratégie. Les étendues valides sont les suivantes : groupe d’administration (format : '/providers/Microsoft.Management/managementGroups/{managementGroup}'), abonnement (format : '/subscriptions/{subscriptionId}'), groupe de ressources (format : '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', ou ressource (format : '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-WhatIf
Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
PSObject[]
String[]