Delen via


New-AzPolicyAssignment

Hiermee maakt of werkt u een beleidstoewijzing bij.

Syntaxis

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>]
   [-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[]>]
   [-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[]>]
   [-BackwardCompatible]
   -PolicyDefinition <PSObject>
   [-DefinitionVersion <String>]
   [-DefaultProfile <PSObject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Met de cmdlet New-AzPolicyAssignment maakt of werkt u een beleidstoewijzing bij met het opgegeven bereik en de opgegeven naam. Beleidstoewijzingen zijn van toepassing op alle resources die binnen hun bereik vallen. Wanneer u bijvoorbeeld een beleid toewijst op het bereik van de resourcegroep, is dat beleid van toepassing op alle resources in de groep.

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

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

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.

Voorbeeld 9: [Backcompat] 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 10: [Backcompat] Beleidstoewijzing op resourcegroepsniveau met beleidsparameterbestand

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

Parameters

-BackwardCompatible

Zorgt ervoor dat cmdlet artefacten retourneert met behulp van verouderde indeling waarbij beleidsspecifieke eigenschappen in een eigenschapsverzamelingsobject worden geplaatst.

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

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

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

-DefaultProfile

De parameter DefaultProfile is niet functioneel. Gebruik de parameter SubscriptionId indien beschikbaar als u de cmdlet uitvoert voor een ander abonnement.

Type:PSObject
Aliassen:AzureRMContext, AzureCredential
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-DefinitionVersion

Versie van beleidsdefinitie of beleidssetdefinitie aangeven

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

-Description

Dit bericht maakt deel uit van het antwoord in het geval van een schending van het beleid.

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

-DisplayName

De weergavenaam van de beleidstoewijzing.

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

-EnforcementMode

De afdwingingsmodus voor beleidstoewijzing. Mogelijke waarden zijn Standaard en DoNotEnforce.

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

-IdentityId

De gebruikersidentiteit die is gekoppeld aan het beleid. De sleutelverwijzingen voor de gebruikersidentiteitswoordenlijst zijn ARM-resource-id's in de vorm: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}.

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

-IdentityType

Het identiteitstype. Dit is het enige vereiste veld bij het toevoegen van een door het systeem of de gebruiker toegewezen identiteit aan een resource.

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

-Location

De locatie van de beleidstoewijzing. Alleen vereist bij het gebruik van beheerde identiteit.

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

-Metadata

De metagegevens van de beleidstoewijzing. Metagegevens zijn een geopend object en zijn meestal een verzameling sleutel-waardeparen.

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

-Name

De naam van de beleidstoewijzing.

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

-NonComplianceMessage

De berichten die beschrijven waarom een resource niet compatibel is met het beleid. Zie de sectie NOTES voor NONCOMPLIANCEMESSAGE-eigenschappen en maak een hash-tabel om deze samen te stellen.

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

-NotScope

Uitgesloten bereiken van het beleid.

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

-PolicyDefinition

Beleidsdefinitie of beleidssetdefinitieobject accepteren

Type:PSObject
Aliassen:PolicySetDefinition
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-PolicyParameter

De parameterwaarden voor de toegewezen beleidsregel. De sleutels zijn de parameternamen.

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

-PolicyParameterObject

De parameterwaarden voor de toegewezen beleidsregel. De sleutels zijn de parameternamen.

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

-Scope

Het bereik van de beleidstoewijzing. Geldige bereiken zijn: beheergroep (indeling: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), abonnement (indeling: '/subscriptions/{subscriptionId}'), resourcegroep (indeling: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', of resource (indeling: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'

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

-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

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

Invoerwaarden

PSObject

PSObject[]

String

String[]

Uitvoerwaarden

IPolicyAssignment