New-AzPolicyDefinition

Skapar en principdefinition.

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

Description

Cmdleten New-AzPolicyDefinition skapar en principdefinition som innehåller en principregel i JSON-format (JavaScript Object Notation).

Exempel

Exempel 1: Skapa en principdefinition med hjälp av en principfil

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

Det här kommandot skapar en principdefinition med namnet LocationDefinition som innehåller principregeln som anges i C:\LocationPolicy.json. Exempelinnehåll för LocationPolicy.json-filen anges ovan. Tre filinnehållsformat stöds:

  1. Endast principregel (exempel ovan).
  2. Objekt för principegenskaper. Det här formatet visas i portalen när du redigerar en principdefinition och kan innehålla parametrar.
  3. Fullständigt principobjekt. Det här formatet genereras av azure policy-exportfunktionen och kan innehålla parametrar.

Obs! Värden som anges på kommandoraden (t.ex. parametrar, metadata) åsidosätter motsvarande värden som finns i filen.

Exempel 2: Skapa en parameteriserad principdefinition med infogade parametrar

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

Det här kommandot skapar en principdefinition med namnet LocationDefinition som innehåller principregeln som anges i C:\LocationPolicy.json. Parameterdefinitionen för principregeln anges infogad.

Exempel 3: Skapa en principdefinition infogad i en hanteringsgrupp

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

Det här kommandot skapar en principdefinition med namnet VMPolicyDefinition i hanteringsgruppen Dept42. Kommandot anger principen som en sträng i giltigt JSON-format.

Exempel 4: Skapa en principdefinition infogad med metadata

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

Det här kommandot skapar en principdefinition med namnet VMPolicyDefinition med metadata som anger att dess kategori är "Virtuell dator". Kommandot anger principen som en sträng i giltigt JSON-format.

Exempel 5: Skapa en principdefinition infogad med läge

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

Det här kommandot skapar en principdefinition med namnet TagsPolicyDefinition med läget "Indexerad" som anger att principen endast ska utvärderas för resurstyper som stöder taggar och platser.

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

-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

Anger en beskrivning av principdefinitionen.

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

-DisplayName

Anger ett visningsnamn för principdefinitionen.

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

-ManagementGroupName

Namnet på hanteringsgruppen för den nya principdefinitionen.

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

-Metadata

Metadata för principdefinition. Detta kan antingen vara en sökväg till ett filnamn som innehåller metadata eller metadata som sträng

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

-Mode

Läget för principdefinitionen

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

-Name

Anger ett namn för principdefinitionen.

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

-Parameter

Parameterdeklarationen för principdefinition. Detta kan antingen vara en sökväg till ett filnamn som innehåller parameterdeklarationen eller parameterdeklarationen som sträng.

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

-Policy

Anger en principregel för principdefinitionen. Du kan ange sökvägen till en .json fil eller en sträng som innehåller principen i JSON-format.

Type:String
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

-SubscriptionId

Prenumerations-ID för den nya principdefinitionen.

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

Indata

String

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

Utdata

PSObject