New-AzPolicyAssignment
Crée une attribution de stratégie.
Syntaxe
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-PolicyDefinition <PsPolicyDefinition>]
[-PolicySetDefinition <PsPolicySetDefinition>]
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
-PolicyDefinition <PsPolicyDefinition>
[-PolicySetDefinition <PsPolicySetDefinition>]
-PolicyParameterObject <Hashtable>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
-PolicyDefinition <PsPolicyDefinition>
[-PolicySetDefinition <PsPolicySetDefinition>]
-PolicyParameter <String>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-PolicyDefinition <PsPolicyDefinition>]
-PolicySetDefinition <PsPolicySetDefinition>
-PolicyParameterObject <Hashtable>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-PolicyDefinition <PsPolicyDefinition>]
-PolicySetDefinition <PsPolicySetDefinition>
-PolicyParameter <String>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Description
L’applet de commande New-AzPolicyAssignment crée une attribution de stratégie. Spécifiez une stratégie et une étendue.
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 {$_.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 4 : Affectation de stratégie au niveau du groupe de ressources avec le fichier de paramètres de stratégie
Créez un fichier appelé AllowedLocations.json dans le répertoire de travail local avec le contenu suivant.
<#{
"listOfAllowedLocations": {
"value": [
"westus",
"westeurope",
"japanwest"
]
}
}#>
$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 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 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.
Paramètres
-ApiVersion
Spécifie la version de l’API du fournisseur de ressources à utiliser. Si vous ne spécifiez pas de version, cette applet de commande utilise la dernière version disponible.
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 |
-AssignIdentity
Générez et attribuez une identité managée affectée par le système pour cette affectation de stratégie. L’identité sera utilisée lors de l’exécution de déploiements pour les stratégies « deployIfNotExists » et « modify ». L’emplacement est requis lors de l’attribution d’une identité.
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 |
-DefaultProfile
Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure
Type: | IAzureContextContainer |
Alias: | AzContext, 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 |
-Description
Description 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 |
-DisplayName
Spécifie un nom complet pour 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 pour l’attribution de stratégie. Actuellement, les valeurs valides sont Default, DoNotEnforce.
Type: | Nullable<T>[PolicyAssignmentEnforcementMode] |
Valeurs acceptées: | Default, DoNotEnforce |
Position: | Named |
Valeur par défaut: | Default |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-IdentityId
Spécifie l’ID de l’identité managée affectée par l’utilisateur à affecter à cette attribution de stratégie. Cette valeur est requise si la valeur « UserAssigned » est passée au paramètre -IdentityType.
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
Spécifie le type d’identité managée à affecter à cette affectation de stratégie. Si la valeur « SystemAssigned » est fournie, une identité managée affectée par le système est générée et affectée à cette affectation de stratégie. Si la valeur « UserAssigned » est fournie, l’identité affectée par l’utilisateur transmise via son ID au paramètre -IdentityId est affectée à cette attribution de stratégie. L’identité sera utilisée lors de l’exécution de déploiements pour les stratégies « deployIfNotExists » et « modify ». L’emplacement est requis lors de l’attribution d’une identité. Les autorisations doivent être accordées à l’identité à l’aide de New-AzRoleAssignment après la création de l’identité affectée par le système. Le paramètre IdentityType est prioritaire si le paramètre AssignIdentity et IdentityType sont utilisés.
Type: | Nullable<T>[ManagedIdentityType] |
Valeurs acceptées: | SystemAssigned, UserAssigned, None |
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’identité de ressource de l’affectation de stratégie. Cela est nécessaire lorsque la valeur -IdentityType est fournie.
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 de la nouvelle affectation de stratégie. Il peut s’agir d’un chemin d’accès à un nom de fichier contenant les métadonnées, ou des métadonnées sous forme de chaîne.
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
Spécifie un nom pour l’attribution de stratégie.
Type: | String |
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 de non-conformité qui décrivent pourquoi une ressource n’est pas conforme à la stratégie.
Type: | PsNonComplianceMessage[] |
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
Les étendues d’affectation de stratégie ne sont pas étendues.
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 |
-PolicyDefinition
Spécifie une stratégie, en tant qu’objet PsPolicyDefinition qui contient la règle de stratégie.
Type: | PsPolicyDefinition |
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
Chemin d’accès du fichier de paramètre de stratégie ou chaîne de paramètre de stratégie.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-PolicyParameterObject
Objet de paramètre de stratégie.
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 |
-PolicySetDefinition
Objet de définition du jeu de stratégies.
Type: | PsPolicySetDefinition |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Pre
Indique que cette applet de commande prend en compte les versions d’API en préversion lorsqu’elle détermine automatiquement la version à utiliser.
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 |
-Scope
Spécifie l’étendue à laquelle affecter la stratégie.
Par exemple, pour affecter une stratégie à un groupe de ressources, spécifiez les éléments suivants : /subscriptions/
nom du groupe de ressources ID d’abonnement/resourcegroups/
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 |
Entrées
String[]
Nullable<T>[[Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy.PolicyAssignmentEnforcementMode, Microsoft.Azure.PowerShell.Cmdlets.ResourceManager, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null]]