Udostępnij za pośrednictwem


New-AzPolicyAssignment

Tworzy przypisanie zasad.

Składnia

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

Opis

Polecenie cmdlet New-AzPolicyAssignment tworzy przypisanie zasad. Określ zasady i zakres.

Przykłady

Przykład 1. Przypisanie zasad na poziomie subskrypcji

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

Pierwsze polecenie pobiera subskrypcję o nazwie Subscription01 przy użyciu polecenia cmdlet Get-AzSubscription i zapisuje ją w zmiennej $Subscription. Drugie polecenie pobiera definicję zasad o nazwie VirtualMachinePolicy przy użyciu polecenia cmdlet Get-AzPolicyDefinition i zapisuje ją w zmiennej $Policy. Ostatnie polecenie przypisuje zasady w $Policy na poziomie subskrypcji zidentyfikowanej przez ciąg zakresu subskrypcji.

Przykład 2. Przypisanie zasad na poziomie grupy zasobów

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

Pierwsze polecenie pobiera grupę zasobów o nazwie ResourceGroup11 przy użyciu polecenia cmdlet Get-AzResourceGroup i zapisuje ją w zmiennej $ResourceGroup. Drugie polecenie pobiera definicję zasad o nazwie VirtualMachinePolicy przy użyciu polecenia cmdlet Get-AzPolicyDefinition i zapisuje ją w zmiennej $Policy. Ostatnie polecenie przypisuje zasady w $Policy na poziomie grupy zasobów zidentyfikowanej przez właściwość ResourceId $ResourceGroup.

Przykład 3. Przypisanie zasad na poziomie grupy zasobów z obiektem parametru zasad

$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

Pierwsze polecenie pobiera grupę zasobów o nazwie ResourceGroup11 przy użyciu polecenia cmdlet Get-AzResourceGroup. Polecenie przechowuje ten obiekt w zmiennej $ResourceGroup. Drugie polecenie pobiera wbudowaną definicję zasad dla dozwolonych lokalizacji przy użyciu polecenia cmdlet Get-AzPolicyDefinition. Polecenie przechowuje ten obiekt w zmiennej $Policy. Trzecie i czwarte polecenia tworzą obiekt zawierający wszystkie regiony platformy Azure o nazwie "east". Polecenia przechowują ten obiekt w zmiennej $AllowedLocations. Ostatnie polecenie przypisuje zasady w $Policy na poziomie grupy zasobów przy użyciu obiektu parametru zasad w $AllowedLocations. Właściwość ResourceId $ResourceGroup identyfikuje grupę zasobów.

Przykład 4. Przypisanie zasad na poziomie grupy zasobów z plikiem parametrów zasad

Utwórz plik o nazwie AllowedLocations.json w lokalnym katalogu roboczym z następującą zawartością.

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

Pierwsze polecenie pobiera grupę zasobów o nazwie ResourceGroup11 przy użyciu polecenia cmdlet Get-AzResourceGroup i zapisuje ją w zmiennej $ResourceGroup. Drugie polecenie pobiera wbudowaną definicję zasad dla dozwolonych lokalizacji przy użyciu polecenia cmdlet Get-AzPolicyDefinition i zapisuje ją w zmiennej $Policy. Ostatnie polecenie przypisuje zasady w $Policy w grupie zasobów zidentyfikowanej przez właściwość ResourceId $ResourceGroup przy użyciu pliku parametrów zasad AllowedLocations.json z lokalnego katalogu roboczego.

Przykład 5. Przypisanie zasad z przypisaną przez system tożsamością zarządzaną

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

Pierwsze polecenie pobiera grupę zasobów o nazwie ResourceGroup11 przy użyciu polecenia cmdlet Get-AzResourceGroup i zapisuje ją w zmiennej $ResourceGroup. Drugie polecenie pobiera definicję zasad o nazwie VirtualMachinePolicy przy użyciu polecenia cmdlet Get-AzPolicyDefinition i zapisuje ją w zmiennej $Policy. Ostatnie polecenie przypisuje zasady w $Policy do grupy zasobów. Tożsamość zarządzana przypisana przez system jest tworzona automatycznie i przypisywana do przypisania zasad.

Przykład 6. Przypisanie zasad z tożsamością zarządzaną przypisaną przez użytkownika

$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

Pierwsze polecenie pobiera grupę zasobów o nazwie ResourceGroup11 przy użyciu polecenia cmdlet Get-AzResourceGroup i zapisuje ją w zmiennej $ResourceGroup. Drugie polecenie pobiera definicję zasad o nazwie VirtualMachinePolicy przy użyciu polecenia cmdlet Get-AzPolicyDefinition i zapisuje ją w zmiennej $Policy. Trzecie polecenie pobiera tożsamość zarządzaną przypisaną przez użytkownika o nazwie UserAssignedIdentity1 przy użyciu polecenia cmdlet Get-AzUserAssignedIdentity i zapisuje ją w zmiennej $UserAssignedIdentity. Ostatnie polecenie przypisuje zasady w $Policy do grupy zasobów. Tożsamość zarządzana przypisana przez użytkownika zidentyfikowana przez właściwość Id $UserAssignedIdentity jest przypisywana do przypisania zasad przez przekazanie właściwości Id* do parametru IdentityId.

Przykład 7. Przypisanie zasad z właściwością trybu wymuszania

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

Pierwsze polecenie pobiera subskrypcję o nazwie Subscription01 przy użyciu polecenia cmdlet Get-AzSubscription i zapisuje ją w zmiennej $Subscription. Drugie polecenie pobiera definicję zasad o nazwie VirtualMachinePolicy przy użyciu polecenia cmdlet Get-AzPolicyDefinition i zapisuje ją w zmiennej $Policy. Ostatnie polecenie przypisuje zasady w $Policy na poziomie subskrypcji zidentyfikowanej przez ciąg zakresu subskrypcji. Przypisanie jest ustawiane przy użyciu wartości EnforcementMode usługi DoNotEnforce , tj. efekt zasad nie jest wymuszany podczas tworzenia lub aktualizowania zasobów.

Przykład 8. Przypisanie zasad z komunikatami o niezgodności

$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

Pierwsze polecenie pobiera definicję zestawu zasad o nazwie VirtualMachinePolicySet przy użyciu polecenia cmdlet Get-AzPolicySetDefinition i zapisuje ją w zmiennej $PolicySet. Drugie polecenie tworzy tablicę komunikatów o niezgodności. Jeden komunikat ogólnego przeznaczenia dla całego przypisania i jeden komunikat specyficzny dla zasad ograniczeń jednostki SKU w ramach przypisanej definicji zestawu zasad. Ostatnie polecenie przypisuje definicję zestawu zasad w $PolicySet do subskrypcji z dwoma komunikatami o niezgodności, które będą wyświetlane, jeśli zasób zostanie odrzucony przez zasady.

Parametry

-ApiVersion

Określa wersję interfejsu API dostawcy zasobów do użycia. Jeśli nie określisz wersji, to polecenie cmdlet używa najnowszej dostępnej wersji.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-AssignIdentity

Wygeneruj i przypisz tożsamość zarządzaną przypisaną przez system dla tego przypisania zasad. Tożsamość będzie używana podczas wykonywania wdrożeń dla zasad "deployIfNotExists" i "modify". Lokalizacja jest wymagana podczas przypisywania tożsamości.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-DefaultProfile

Poświadczenia, konto, dzierżawa i subskrypcja używane do komunikacji z platformą Azure

Typ:IAzureContextContainer
Aliasy:AzContext, AzureRmContext, AzureCredential
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Description

Opis przypisania zasad

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-DisplayName

Określa nazwę wyświetlaną przypisania zasad.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-EnforcementMode

Tryb wymuszania przypisania zasad. Obecnie prawidłowe wartości to Default, DoNotEnforce.

Typ:Nullable<T>[PolicyAssignmentEnforcementMode]
Dopuszczalne wartości:Default, DoNotEnforce
Position:Named
Domyślna wartość:Default
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-IdentityId

Określa identyfikator tożsamości zarządzanej przypisanej przez użytkownika do przypisania do tego przypisania zasad. Ta wartość jest wymagana, jeśli wartość "UserAssigned" jest przekazywana do parametru -IdentityType.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-IdentityType

Określa typ tożsamości zarządzanej, który ma zostać przypisany do tego przypisania zasad. Jeśli zostanie podana wartość "SystemAssigned", zostanie wygenerowana tożsamość zarządzana przypisana przez system i przypisana do tego przypisania zasad. Jeśli zostanie podana wartość "UserAssigned", tożsamość przypisana przez użytkownika przekazana za pośrednictwem jego identyfikatora do parametru -IdentityId zostanie przypisana do tego przypisania zasad. Tożsamość będzie używana podczas wykonywania wdrożeń dla zasad "deployIfNotExists" i "modify". Lokalizacja jest wymagana podczas przypisywania tożsamości. Uprawnienia muszą zostać przyznane tożsamości przy użyciu polecenia New-AzRoleAssignment po utworzeniu tożsamości przypisanej przez system. Parametr IdentityType będzie mieć pierwszeństwo, jeśli są używane zarówno parametr AssignIdentity, jak i IdentityType.

Typ:Nullable<T>[ManagedIdentityType]
Dopuszczalne wartości:SystemAssigned, UserAssigned, None
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Location

Lokalizacja tożsamości zasobu przypisania zasad. Jest to wymagane, gdy zostanie podana wartość -IdentityType.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Metadata

Metadane nowego przypisania zasad. Może to być ścieżka do nazwy pliku zawierającej metadane lub metadanych jako ciąg.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Name

Określa nazwę przypisania zasad.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-NonComplianceMessage

Komunikaty o niezgodności, które opisują, dlaczego zasób jest niezgodny z zasadami.

Typ:PsNonComplianceMessage[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-NotScope

Zakresy nie są zakresami przypisywania zasad.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-PolicyDefinition

Określa zasady jako obiekt PsPolicyDefinition , który zawiera regułę zasad.

Typ:PsPolicyDefinition
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-PolicyParameter

Ścieżka pliku parametru zasad lub ciąg parametru zasad.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-PolicyParameterObject

Obiekt parametru zasad.

Typ:Hashtable
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-PolicySetDefinition

Obiekt definicji zestawu zasad.

Typ:PsPolicySetDefinition
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Pre

Wskazuje, że to polecenie cmdlet uwzględnia wersje interfejsu API wersji wstępnej, gdy automatycznie określa wersję do użycia.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Scope

Określa zakres, w którym mają zostać przypisane zasady. Aby na przykład przypisać zasady do grupy zasobów, określ następujące elementy: /subscriptions/nazwa grupy zasobów identyfikatora/resourcegroups/subskrypcji

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

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

Dane wyjściowe

PsPolicyAssignment