New-AzPolicyDefinition

Membuat definisi kebijakan.

Sintaks

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

Deskripsi

Cmdlet New-AzPolicyDefinition membuat definisi kebijakan yang menyertakan aturan kebijakan dalam format JavaScript Object Notation (JSON).

Contoh

Contoh 1: Membuat definisi kebijakan dengan menggunakan file kebijakan

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

Perintah ini membuat definisi kebijakan bernama LocationDefinition yang berisi aturan kebijakan yang ditentukan dalam C:\LocationPolicy.json. Contoh konten untuk file LocationPolicy.json disediakan di atas. Tiga format konten file didukung:

  1. Aturan kebijakan saja (contoh di atas).
  2. Objek properti kebijakan. Format ini ditampilkan di portal saat mengedit definisi kebijakan dan mungkin menyertakan parameter.
  3. Objek kebijakan penuh. Format ini dihasilkan oleh fungsi ekspor Azure Policy dan dapat mencakup parameter.

Catatan: Nilai yang disediakan pada baris perintah (misalnya parameter, metadata) menimpa nilai terkait yang ada dalam file.

Contoh 2: Membuat definisi kebijakan berparameter menggunakan parameter sebaris

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

Perintah ini membuat definisi kebijakan bernama LocationDefinition yang berisi aturan kebijakan yang ditentukan dalam C:\LocationPolicy.json. Definisi parameter untuk aturan kebijakan disediakan sebaris.

Contoh 3: Membuat definisi kebijakan sebaris dalam grup manajemen

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

Perintah ini membuat definisi kebijakan bernama VMPolicyDefinition dalam grup manajemen Dept42. Perintah menentukan kebijakan sebagai string dalam format JSON yang valid.

Contoh 4: Membuat definisi kebijakan sebaris dengan 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

Perintah ini membuat definisi kebijakan bernama VMPolicyDefinition dengan metadata yang menunjukkan kategorinya adalah "Komputer Virtual". Perintah menentukan kebijakan sebagai string dalam format JSON yang valid.

Contoh 5: Membuat definisi kebijakan sebaris dengan mode

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

Perintah ini membuat definisi kebijakan bernama TagsPolicyDefinition dengan mode "Terindeks" yang menunjukkan kebijakan harus dievaluasi hanya untuk jenis sumber daya yang mendukung tag dan lokasi.

Parameter

-ApiVersion

Menentukan versi API penyedia sumber daya yang akan digunakan. Jika Anda tidak menentukan versi, cmdlet ini menggunakan versi terbaru yang tersedia.

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

-DefaultProfile

Kredensial, akun, penyewa, dan langganan yang digunakan untuk komunikasi dengan azure

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

-Description

Menentukan deskripsi untuk definisi kebijakan.

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

-DisplayName

Menentukan nama tampilan untuk definisi kebijakan.

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

-ManagementGroupName

Nama grup manajemen definisi kebijakan baru.

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

-Metadata

Metadata untuk definisi kebijakan. Ini bisa berupa jalur ke nama file yang berisi metadata, atau metadata sebagai string

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

-Mode

Mode definisi kebijakan

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

-Name

Menentukan nama untuk definisi kebijakan.

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

-Parameter

Deklarasi parameter untuk definisi kebijakan. Ini bisa berupa jalur ke nama file yang berisi deklarasi parameter, atau deklarasi parameter sebagai string.

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

-Policy

Menentukan aturan kebijakan untuk definisi kebijakan. Anda dapat menentukan jalur file .json atau string yang berisi kebijakan dalam format JSON.

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

-Pre

Menunjukkan bahwa cmdlet ini mempertimbangkan versi API pra-rilis ketika secara otomatis menentukan versi mana yang akan digunakan.

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

-SubscriptionId

ID langganan definisi kebijakan baru.

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

Input

String

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

Output

PSObject