New-AzPolicyAssignment
Skapar en principtilldelning.
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
Cmdleten New-AzPolicyAssignment skapar en principtilldelning. Ange en princip och ett omfång.
Exempel
Exempel 1: Principtilldelning på prenumerationsnivå
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)"
Det första kommandot hämtar en prenumeration med namnet Subscription01 med hjälp av cmdleten Get-AzSubscription och lagrar den i variabeln $Subscription. Det andra kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy. Det sista kommandot tilldelar principen i $Policy på den prenumerationsnivå som identifieras av prenumerationsomfångssträngen.
Exempel 2: Principtilldelning på resursgruppsnivå
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId
Det första kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup och lagrar den i variabeln $ResourceGroup. Det andra kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy. Det sista kommandot tilldelar principen i $Policy på den resursgrupp som identifieras av egenskapen ResourceId för $ResourceGroup.
Exempel 3: Principtilldelning på resursgruppsnivå med principparameterobjekt
$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
Det första kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup. Kommandot lagrar objektet i variabeln $ResourceGroup. Det andra kommandot hämtar den inbyggda principdefinitionen för tillåtna platser med hjälp av cmdleten Get-AzPolicyDefinition. Kommandot lagrar objektet i variabeln $Policy. De tredje och fjärde kommandona skapar ett objekt som innehåller alla Azure-regioner med "öst" i namnet. Kommandona lagrar objektet i variabeln $AllowedLocations. Det sista kommandot tilldelar principen i $Policy på nivån för en resursgrupp med hjälp av principparameterobjektet i $AllowedLocations. Egenskapen ResourceId för $ResourceGroup identifierar resursgruppen.
Exempel 4: Principtilldelning på resursgruppsnivå med principparameterfil
Skapa en fil med namnet AllowedLocations.json i den lokala arbetskatalogen med följande innehåll.
<#{
"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
Det första kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup och lagrar den i variabeln $ResourceGroup. Det andra kommandot hämtar den inbyggda principdefinitionen för tillåtna platser med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy. Det sista kommandot tilldelar principen i $Policy i resursgruppen som identifieras av egenskapen ResourceId för $ResourceGroup med hjälp av principparameterfilen AllowedLocations.json från den lokala arbetskatalogen.
Exempel 5: Principtilldelning med en systemtilldelad hanterad identitet
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'SystemAssigned'
Det första kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup och lagrar den i variabeln $ResourceGroup. Det andra kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy. Det sista kommandot tilldelar principen i $Policy till resursgruppen. En systemtilldelad hanterad identitet skapas automatiskt och tilldelas till principtilldelningen.
Exempel 6: Principtilldelning med en användartilldelad hanterad identitet
$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
Det första kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup och lagrar den i variabeln $ResourceGroup. Det andra kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy. Det tredje kommandot hämtar den användartilldelade hanterade identiteten med namnet UserAssignedIdentity1 med cmdleten Get-AzUserAssignedIdentity och lagrar den i variabeln $UserAssignedIdentity. Det sista kommandot tilldelar principen i $Policy till resursgruppen. Den användartilldelade hanterade identiteten som identifieras av ID-egenskapen för $UserAssignedIdentity tilldelas till principtilldelningen genom att egenskapen Id* skickas till parametern IdentityId.
Exempel 7: Principtilldelning med en egenskap för tvingande läge
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)" -EnforcementMode DoNotEnforce
Det första kommandot hämtar en prenumeration med namnet Subscription01 med hjälp av cmdleten Get-AzSubscription och lagrar den i variabeln $Subscription. Det andra kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy. Det sista kommandot tilldelar principen i $Policy på den prenumerationsnivå som identifieras av prenumerationsomfångssträngen. Tilldelningen anges med värdet EnforcementMode för DoNotEnforce , dvs. principeffekten tillämpas inte när resursen skapas eller uppdateras.
Exempel 8: Principtilldelning med icke-efterlevnadsmeddelanden
$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
Det första kommandot hämtar principuppsättningsdefinitionen med namnet VirtualMachinePolicySet med hjälp av cmdleten Get-AzPolicySetDefinition och lagrar den i variabeln $PolicySet. Det andra kommandot skapar en matris med icke-efterlevnadsmeddelanden. Ett allmänt syftesmeddelande för hela tilldelningen och ett meddelande som är specifikt för en SKU-begränsningsprincip i den tilldelade principuppsättningsdefinitionen. Det sista kommandot tilldelar principuppsättningsdefinitionen i $PolicySet till prenumerationen med två icke-efterlevnadsmeddelanden som visas om en resurs nekas av principen.
Parametrar
-ApiVersion
Anger vilken version av resursprovider-API:et som ska användas. Om du inte anger någon version använder den här cmdleten den senaste tillgängliga versionen.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AssignIdentity
Generera och tilldela en systemtilldelad hanterad identitet för den här principtilldelningen. Identiteten används vid körning av distributioner för "deployIfNotExists" och "modify"-principer. Plats krävs när du tilldelar en identitet.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultProfile
Autentiseringsuppgifter, konto, klientorganisation och prenumeration som används för kommunikation med Azure
Type: | IAzureContextContainer |
Aliases: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Beskrivningen för principtilldelning
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DisplayName
Anger ett visningsnamn för principtilldelningen.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EnforcementMode
Tvingande läge för principtilldelning. För närvarande är giltiga värden Standard, 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
Anger ID för den användartilldelade hanterade identitet som ska tilldelas till den här principtilldelningen. Det här värdet krävs om värdet "UserAssigned" skickas till parametern -IdentityType.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IdentityType
Anger vilken typ av hanterad identitet som ska tilldelas till den här principtilldelningen. Om värdet "SystemAssigned" anges genereras en systemtilldelad hanterad identitet och tilldelas till den här principtilldelningen. Om värdet "UserAssigned" anges skickas den användartilldelade identiteten via dess ID till parametern -IdentityId till den här principtilldelningen. Identiteten används vid körning av distributioner för "deployIfNotExists" och "modify"-principer. Plats krävs när du tilldelar en identitet. Behörigheter måste beviljas till identiteten med hjälp av New-AzRoleAssignment när den systemtilldelade identiteten har skapats. Parametern IdentityType får företräde om både parametern AssignIdentity och IdentityType används.
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
Platsen för principtilldelningens resursidentitet. Detta krävs när värdet -IdentityType anges.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Metadata
Metadata för den nya principtilldelningen. Detta kan antingen vara en sökväg till ett filnamn som innehåller metadata eller metadata som en sträng.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Anger ett namn för principtilldelningen.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NonComplianceMessage
De icke-efterlevnadsmeddelanden som beskriver varför en resurs inte är kompatibel med principen.
Type: | PsNonComplianceMessage[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NotScope
Inte omfång för principtilldelning.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyDefinition
Anger en princip som ett PsPolicyDefinition-objekt som innehåller principregeln.
Type: | PsPolicyDefinition |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyParameter
Principparameterns filsökväg eller principparametersträng.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyParameterObject
Principparameterobjektet.
Type: | Hashtable |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PolicySetDefinition
Definitionsobjektet för principuppsättningen.
Type: | PsPolicySetDefinition |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Pre
Anger att den här cmdleten tar hänsyn till förhandsversioner av API:et när den automatiskt avgör vilken version som ska användas.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Anger det omfång där principen ska tilldelas.
Om du till exempel vill tilldela en princip till en resursgrupp anger du följande: /subscriptions/
resursgruppsnamn för prenumerations-ID/resourcegroups/
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Indata
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]]
Utdata
Relaterade länkar
Azure PowerShell
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för