New-AzPolicyDefinition

Erstellt eine Richtliniendefinition.

Syntax

New-AzPolicyDefinition
   -Name <String>
   [-DisplayName <String>]
   [-Description <String>]
   -Policy <String>
   [-Metadata <String>]
   [-Parameter <String>]
   [-Mode <String>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzPolicyDefinition
   -Name <String>
   [-DisplayName <String>]
   [-Description <String>]
   -Policy <String>
   [-Metadata <String>]
   [-Parameter <String>]
   [-Mode <String>]
   -ManagementGroupName <String>
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzPolicyDefinition
   -Name <String>
   [-DisplayName <String>]
   [-Description <String>]
   -Policy <String>
   [-Metadata <String>]
   [-Parameter <String>]
   [-Mode <String>]
   -SubscriptionId <Guid>
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Beschreibung

Das Cmdlet New-AzPolicyDefinition erstellt eine Richtliniendefinition, die eine Richtlinienregel im JSON-Format (JavaScript Object Notation) enthält.

Beispiele

Beispiel 1: Erstellen einer Richtliniendefinition mithilfe einer Richtliniendatei

<#{
   "if": {
      "field": "location",
      "notIn": ["eastus", "westus", "centralus"]
   },
   "then": {
      "effect": "audit"
   }
}#>
New-AzPolicyDefinition -Name 'LocationDefinition' -Policy C:\LocationPolicy.json

Dieser Befehl erstellt eine Richtliniendefinition namens "LocationDefinition", die die in C:\LocationPolicy.json angegebene Richtlinienregel enthält. Beispielinhalte für die Datei "LocationPolicy.json" werden oben bereitgestellt. Drei Dateiformate werden unterstützt:

  1. Richtlinienregel nur (Beispiel oben).
  2. Richtlinieneigenschaftenobjekt. Dieses Format wird im Portal beim Bearbeiten einer Richtliniendefinition angezeigt und kann Parameter enthalten.
  3. Vollständiges Richtlinienobjekt. Dieses Format wird von der Azure Policy Exportfunktion generiert und kann Parameter enthalten.

Hinweis: Werte, die in der Befehlszeile (z. B. Parameter, Metadaten) bereitgestellt werden, überschreiben entsprechende Werte, die in der Datei vorhanden sind.

Beispiel 2: Erstellen einer parametrisierten Richtliniendefinition mithilfe von Inlineparametern

<#{
   "if": {
      "field": "location",
      "notIn": "[parameters('listOfAllowedLocations')]"
   },
   "then": {
      "effect": "audit"
   }
}#>
New-AzPolicyDefinition -Name 'LocationDefinition' -Policy C:\LocationPolicy.json -Parameter '{ "listOfAllowedLocations": { "type": "array" } }'

Dieser Befehl erstellt eine Richtliniendefinition namens "LocationDefinition", die die in C:\LocationPolicy.json angegebene Richtlinienregel enthält. Die Parameterdefinition für die Richtlinienregel wird inline bereitgestellt.

Beispiel 3: Erstellen einer Richtliniendefinition inline in einer Verwaltungsgruppe

New-AzPolicyDefinition -Name 'VMPolicyDefinition' -ManagementGroupName Dept42 -DisplayName 'Virtual Machine policy definition' -Policy '{"if":{"field":"type","equals":"Microsoft.Compute/virtualMachines"},"then":{"effect":"deny"}}'

Dieser Befehl erstellt eine Richtliniendefinition namens "VMPolicyDefinition" in der Verwaltungsgruppe "Dept42". Der Befehl gibt die Richtlinie als Zeichenfolge im gültigen JSON-Format an.

Beispiel 4: Erstellen einer Richtliniendefinition inline mit Metadaten

New-AzPolicyDefinition -Name 'VMPolicyDefinition' -Metadata '{"category":"Virtual Machine"}' -Policy '{"if":{"field":"type","equals":"Microsoft.Compute/virtualMachines"},"then":{"effect":"deny"}}'

Name               : VMPolicyDefinition
ResourceId         : /subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/policyDefinitions/VMPolicyDefinition
ResourceName       : VMPolicyDefinition
ResourceType       : Microsoft.Authorization/policyDefinitions
SubscriptionId     : 11111111-1111-1111-1111-111111111111
Properties         : @{displayName=VMPolicyDefinition; policyType=Custom; mode=All; metadata=; policyRule=}
PolicyDefinitionId : /subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/policyDefinitions/VMPolicyDefinition

Dieser Befehl erstellt eine Richtliniendefinition namens VMPolicyDefinition mit Metadaten, die die Kategorie "Virtueller Computer" angibt. Der Befehl gibt die Richtlinie als Zeichenfolge im gültigen JSON-Format an.

Beispiel 5: Erstellen einer Richtliniendefinition inline mit Modus

New-AzPolicyDefinition -Name 'TagsPolicyDefinition' -Policy '{"if":{"value":"[less(length(field(''tags'')), 3)]","equals":true},"then":{"effect":"deny"}}' -Mode Indexed

Name               : TagsPolicyDefinition
ResourceId         : /subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/policyDefinitions/TagsPolicyDefinition
ResourceName       : TagsPolicyDefinition
ResourceType       : Microsoft.Authorization/policyDefinitions
SubscriptionId     : 11111111-1111-1111-1111-111111111111
Properties         : @{displayName=TagsPolicyDefinition; policyType=Custom; mode=Indexed; metadata=; parameters=; policyRule=}
PolicyDefinitionId : /subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/policyDefinitions/TagsPolicyDefinition

Dieser Befehl erstellt eine Richtliniendefinition namens TagsPolicyDefinition mit dem Modus "Indiziert", der angibt, dass die Richtlinie nur für Ressourcentypen ausgewertet werden soll, die Tags und Speicherort unterstützen.

Parameter

-ApiVersion

Gibt die zu verwendende Version der Ressourcenanbieter-API an. Wenn Sie keine Version angeben, verwendet dieses Cmdlet die neueste verfügbare Version.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-DefaultProfile

Die Anmeldeinformationen, Konten, Mandanten und Abonnements, die für die Kommunikation mit Azure verwendet werden

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Description

Gibt eine Beschreibung für die Richtliniendefinition an.

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-DisplayName

Gibt einen Anzeigenamen für die Richtliniendefinition an.

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-ManagementGroupName

Der Name der Verwaltungsgruppe der neuen Richtliniendefinition.

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Metadata

Die Metadaten für die Richtliniendefinition. Dies kann entweder ein Pfad zu einem Dateinamen sein, der die Metadaten enthält, oder die Metadaten als Zeichenfolge

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Mode

Der Modus der Richtliniendefinition

Type:String
Position:Named
Default value:All
Accept pipeline input:True
Accept wildcard characters:False
-Name

Gibt einen Namen für die Richtliniendefinition an.

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Parameter

Die Parameterdeklaration für die Richtliniendefinition. Dies kann entweder ein Pfad zu einem Dateinamen sein, der die Parameterdeklaration enthält, oder die Parameterdeklaration als Zeichenfolge.

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Policy

Gibt eine Richtlinienregel für die Richtliniendefinition an. Sie können den Pfad einer JSON-Datei oder einer Zeichenfolge angeben, die die Richtlinie im JSON-Format enthält.

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Pre

Gibt an, dass dieses Cmdlet Vorabversions-API-Versionen berücksichtigt, wenn automatisch bestimmt wird, welche Version verwendet werden soll.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-SubscriptionId

Die Abonnement-ID der neuen Richtliniendefinition.

Type:Nullable<T>[Guid]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

Eingaben

String

Nullable<T>[[System.Guid, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]

Ausgaben

PSObject