Delen via


New-AzPolicyAssignment

Hiermee maakt u een beleidstoewijzing.

Syntaxis

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

Met de cmdlet New-AzPolicyAssignment maakt u een beleidstoewijzing. Geef een beleid en bereik op.

Voorbeelden

Voorbeeld 1: Beleidstoewijzing op abonnementsniveau

$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)"

Met de eerste opdracht wordt een abonnement met de naam Subscription01 opgehaald met behulp van de Cmdlet Get-AzSubscription en wordt het opgeslagen in de $Subscription variabele. Met de tweede opdracht haalt u de beleidsdefinitie VirtualMachinePolicy op met behulp van de cmdlet Get-AzPolicyDefinition en slaat deze op in de variabele $Policy. Met de laatste opdracht wordt het beleid in $Policy toegewezen op het niveau van het abonnement dat is geïdentificeerd door de tekenreeks voor het abonnementsbereik.

Voorbeeld 2: Beleidstoewijzing op resourcegroepniveau

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId

De eerste opdracht haalt een resourcegroep met de naam ResourceGroup11 op met behulp van de Cmdlet Get-AzResourceGroup en slaat deze op in de $ResourceGroup variabele. Met de tweede opdracht haalt u de beleidsdefinitie VirtualMachinePolicy op met behulp van de cmdlet Get-AzPolicyDefinition en slaat deze op in de variabele $Policy. Met de laatste opdracht wordt het beleid in $Policy toegewezen op het niveau van de resourcegroep die is geïdentificeerd door de eigenschap ResourceId van $ResourceGroup.

Voorbeeld 3: Beleidstoewijzing op resourcegroepsniveau met beleidsparameterobject

$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

Met de eerste opdracht wordt een resourcegroep met de naam ResourceGroup11 ophaalt met behulp van de cmdlet Get-AzResourceGroup. Met de opdracht wordt dat object opgeslagen in de variabele $ResourceGroup. Met de tweede opdracht wordt de ingebouwde beleidsdefinitie voor toegestane locaties opgeslagen met behulp van de cmdlet Get-AzPolicyDefinition. Met de opdracht wordt dat object opgeslagen in de $Policy variabele. Met de derde en vierde opdracht maakt u een object met alle Azure-regio's met 'oost' in de naam. Met de opdrachten wordt dat object opgeslagen in de variabele $AllowedLocations. Met de laatste opdracht wordt het beleid in $Policy toegewezen op het niveau van een resourcegroep met behulp van het beleidsparameterobject in $AllowedLocations. De eigenschap ResourceId van $ResourceGroup identificeert de resourcegroep.

Voorbeeld 4: Beleidstoewijzing op resourcegroepsniveau met beleidsparameterbestand

Maak een bestand met de naam AllowedLocations.json in de lokale werkmap met de volgende inhoud.

<#{
    "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

De eerste opdracht haalt een resourcegroep met de naam ResourceGroup11 op met behulp van de Cmdlet Get-AzResourceGroup en slaat deze op in de $ResourceGroup variabele. De tweede opdracht haalt de ingebouwde beleidsdefinitie op voor toegestane locaties met behulp van de cmdlet Get-AzPolicyDefinition en slaat deze op in de $Policy variabele. Met de laatste opdracht wordt het beleid in $Policy toegewezen aan de resourcegroep die is geïdentificeerd door de eigenschap ResourceId van $ResourceGroup met behulp van het beleidsparameterbestand AllowedLocations.json uit de lokale werkmap.

Voorbeeld 5: Beleidstoewijzing met een door het systeem toegewezen beheerde identiteit

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'SystemAssigned'

De eerste opdracht haalt een resourcegroep met de naam ResourceGroup11 op met behulp van de Cmdlet Get-AzResourceGroup en slaat deze op in de $ResourceGroup variabele. Met de tweede opdracht haalt u de beleidsdefinitie VirtualMachinePolicy op met behulp van de cmdlet Get-AzPolicyDefinition en slaat deze op in de variabele $Policy. Met de laatste opdracht wordt het beleid in $Policy toegewezen aan de resourcegroep. Er wordt automatisch een door het systeem toegewezen beheerde identiteit gemaakt en toegewezen aan de beleidstoewijzing.

Voorbeeld 6: Beleidstoewijzing met een door de gebruiker toegewezen beheerde identiteit

$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

De eerste opdracht haalt een resourcegroep met de naam ResourceGroup11 op met behulp van de Cmdlet Get-AzResourceGroup en slaat deze op in de $ResourceGroup variabele. Met de tweede opdracht haalt u de beleidsdefinitie VirtualMachinePolicy op met behulp van de cmdlet Get-AzPolicyDefinition en slaat deze op in de variabele $Policy. Met de derde opdracht wordt de door de gebruiker toegewezen beheerde identiteit met de naam UserAssignedIdentity1 opgehaald met behulp van de cmdlet Get-AzUserAssignedIdentity en wordt deze opgeslagen in de variabele $UserAssignedIdentity. Met de laatste opdracht wordt het beleid in $Policy toegewezen aan de resourcegroep. De door de gebruiker toegewezen beheerde identiteit die is geïdentificeerd door de eigenschap Id van $UserAssignedIdentity wordt toegewezen aan de beleidstoewijzing door de eigenschap Id* door te geven aan de parameter IdentityId.

Voorbeeld 7: Beleidstoewijzing met een eigenschap afdwingingsmodus

$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)" -EnforcementMode DoNotEnforce

Met de eerste opdracht wordt een abonnement met de naam Subscription01 opgehaald met behulp van de Cmdlet Get-AzSubscription en wordt het opgeslagen in de $Subscription variabele. Met de tweede opdracht haalt u de beleidsdefinitie VirtualMachinePolicy op met behulp van de cmdlet Get-AzPolicyDefinition en slaat deze op in de variabele $Policy. Met de laatste opdracht wordt het beleid in $Policy toegewezen op het niveau van het abonnement dat is geïdentificeerd door de tekenreeks voor het abonnementsbereik. De toewijzing wordt ingesteld met een EnforcementMode-waarde van DoNotEnforce, bijvoorbeeld het beleidseffect wordt niet afgedwongen tijdens het maken of bijwerken van resources.

Voorbeeld 8: Beleidstoewijzing met niet-nalevingsberichten

$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

De eerste opdracht haalt de beleidssetdefinitie met de naam VirtualMachinePolicySet op met behulp van de cmdlet Get-AzPolicySetDefinition en slaat deze op in de $PolicySet variabele. Met de tweede opdracht maakt u een matrix met niet-nalevingsberichten. Eén algemeen bericht voor de hele toewijzing en één bericht dat specifiek is voor een SKU-beperkingsbeleid binnen de definitie van de toegewezen beleidsset. Met de laatste opdracht wordt de definitie van de beleidsset in $PolicySet toegewezen aan het abonnement met twee niet-nalevingsberichten die worden weergegeven als een resource wordt geweigerd door beleid.

Parameters

-ApiVersion

Hiermee geeft u de versie van de resourceprovider-API die moet worden gebruikt. Als u geen versie opgeeft, gebruikt deze cmdlet de meest recente beschikbare versie.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-AssignIdentity

Genereer en wijs een door het systeem toegewezen beheerde identiteit toe voor deze beleidstoewijzing. De identiteit wordt gebruikt bij het uitvoeren van implementaties voor 'deployIfNotExists' en 'modify'-beleid. Locatie is vereist bij het toewijzen van een identiteit.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-DefaultProfile

De referenties, het account, de tenant en het abonnement dat wordt gebruikt voor communicatie met Azure

Type:IAzureContextContainer
Aliassen:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Description

De beschrijving voor beleidstoewijzing

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-DisplayName

Hiermee geeft u een weergavenaam voor de beleidstoewijzing op.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-EnforcementMode

De afdwingingsmodus voor beleidstoewijzing. Geldige waarden zijn momenteel Standaard, DoNotEnforce.

Type:Nullable<T>[PolicyAssignmentEnforcementMode]
Geaccepteerde waarden:Default, DoNotEnforce
Position:Named
Default value:Default
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-IdentityId

Hiermee geeft u de id op van de door de gebruiker toegewezen beheerde identiteit die moet worden toegewezen aan deze beleidstoewijzing. Deze waarde is vereist als de waarde UserAssigned wordt doorgegeven aan de parameter -IdentityType.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-IdentityType

Hiermee geeft u het type beheerde identiteit dat moet worden toegewezen aan deze beleidstoewijzing. Als de waarde SystemAssigned is opgegeven, wordt er een door het systeem toegewezen beheerde identiteit gegenereerd en toegewezen aan deze beleidstoewijzing. Als de waarde UserAssigned is opgegeven, wordt de door de gebruiker toegewezen identiteit via de id aan de parameter -IdentityId toegewezen aan deze beleidstoewijzing. De identiteit wordt gebruikt bij het uitvoeren van implementaties voor 'deployIfNotExists' en 'modify'-beleid. Locatie is vereist bij het toewijzen van een identiteit. Machtigingen moeten worden verleend aan de identiteit met behulp van New-AzRoleAssignment nadat de door het systeem toegewezen identiteit is gemaakt. De parameter IdentityType krijgt voorrang als zowel de Parameter AssignIdentity als de parameter IdentityType worden gebruikt.

Type:Nullable<T>[ManagedIdentityType]
Geaccepteerde waarden:SystemAssigned, UserAssigned, None
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Location

De locatie van de resource-id van de beleidstoewijzing. Dit is vereist wanneer de -IdentityType-waarde wordt opgegeven.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Metadata

De metagegevens voor de nieuwe beleidstoewijzing. Dit kan een pad zijn naar een bestandsnaam met de metagegevens of de metagegevens als een tekenreeks.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Name

Hiermee geeft u een naam voor de beleidstoewijzing.

Type:String
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-NonComplianceMessage

De niet-nalevingsberichten die beschrijven waarom een resource niet compatibel is met het beleid.

Type:PsNonComplianceMessage[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-NotScope

De niet-bereiken voor beleidstoewijzing.

Type:String[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-PolicyDefinition

Hiermee geeft u een beleid, als een PsPolicyDefinition-object dat de beleidsregel bevat.

Type:PsPolicyDefinition
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-PolicyParameter

Het pad naar het beleidsparameterbestand of de tekenreeks van de beleidsparameter.

Type:String
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-PolicyParameterObject

Het beleidsparameterobject.

Type:Hashtable
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-PolicySetDefinition

Het definitieobject van de beleidsset.

Type:PsPolicySetDefinition
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Pre

Hiermee wordt aangegeven dat deze cmdlet api-versies van de voorlopige versie beschouwt wanneer deze automatisch bepaalt welke versie moet worden gebruikt.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Scope

Hiermee geeft u het bereik op waarop het beleid moet worden toegewezen. Als u bijvoorbeeld een beleid wilt toewijzen aan een resourcegroep, geeft u het volgende op: /subscriptions/naam van de resourcegroep abonnements-id/resourcegroups/

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

Invoerwaarden

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[]

Uitvoerwaarden

PsPolicyAssignment