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