New-AzPolicyAssignment

Crée une attribution de stratégie.

Syntax

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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Description de l’attribution de stratégie

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DisplayName

Spécifie un nom complet pour l’attribution de stratégie.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnforcementMode

Mode d’application pour l’attribution de stratégie. Actuellement, les valeurs valides sont Default, DoNotEnforce.

Type:Nullable<T>[PolicyAssignmentEnforcementMode]
Accepted values:Default, DoNotEnforce
Position:Named
Default value:Default
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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]
Accepted values:SystemAssigned, UserAssigned, None
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Spécifie un nom pour l’attribution de stratégie.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NonComplianceMessage

Messages de non-conformité qui décrivent pourquoi une ressource n’est pas conforme à la stratégie.

Type:PsNonComplianceMessage[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-NotScope

Les étendues d’affectation de stratégie ne sont pas étendues.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PolicyDefinition

Spécifie une stratégie, en tant qu’objet PsPolicyDefinition qui contient la règle de stratégie.

Type:PsPolicyDefinition
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PolicyParameterObject

Objet de paramètre de stratégie.

Type:Hashtable
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-PolicySetDefinition

Objet de définition du jeu de stratégies.

Type:PsPolicySetDefinition
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Entrées

String

String[]

PsPolicyDefinition

PsPolicySetDefinition

Nullable<T>[[Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy.PolicyAssignmentEnforcementMode, Microsoft.Azure.PowerShell.Cmdlets.ResourceManager, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null]]

PsNonComplianceMessage[]

Sorties

PsPolicyAssignment