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