Partager via


New-AzPolicyAssignment

Crée ou met à jour une attribution de stratégie.

Syntax

New-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-EnforcementMode <String>]
   [-IdentityType <String>]
   [-IdentityId <String>]
   [-Location <String>]
   [-NonComplianceMessage <PSObject[]>]
   [-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[]>]
   [-BackwardCompatible]
   [-PolicyDefinition <PSObject>]
   -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[]>]
   [-BackwardCompatible]
   [-PolicyDefinition <PSObject>]
   -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[]>]
   [-BackwardCompatible]
   -PolicyDefinition <PSObject>
   [-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"
      ]
    }
}

$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 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.

Exemple 9 : [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 10 : [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"
      ]
    }
}

$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.

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
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Aliases:cf
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters: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
Aliases:AzureRMContext, AzureCredential
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters: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
Accept pipeline input:True
Accept wildcard characters:False

-DisplayName

Nom complet de l’attribution de stratégie.

Type:String
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:True
Accept wildcard characters: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
Accept pipeline input:True
Accept wildcard characters: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
Accept pipeline input:False
Accept wildcard characters: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
Accept pipeline input:False
Accept wildcard characters: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
Accept pipeline input:True
Accept wildcard characters: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
Accept pipeline input:True
Accept wildcard characters:False

-Name

Nom de l’attribution de stratégie.

Type:String
Aliases:PolicyAssignmentName
Position:Named
valeur par défaut:None
Obligatoire:True
Accept pipeline input:True
Accept wildcard characters: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
Accept pipeline input:True
Accept wildcard characters:False

-NotScope

Étendues exclues de la stratégie.

Type:String[]
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:True
Accept wildcard characters:False

-PolicyDefinition

Accepter la définition de stratégie ou l’objet de définition de jeu de stratégies

Type:PSObject
Aliases:PolicySetDefinition
Position:Named
valeur par défaut:None
Obligatoire:True
Accept pipeline input:True
Accept wildcard characters: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
Accept pipeline input:False
Accept wildcard characters: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
Accept pipeline input:False
Accept wildcard characters: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
Accept pipeline input:True
Accept wildcard characters: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
Aliases:wi
Position:Named
valeur par défaut:None
Obligatoire:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

PSObject

PSObject[]

String

String[]

Sorties

IPolicyAssignment