New-AzPolicyDefinition
建立或更新原則定義。
語法
New-AzPolicyDefinition
-Name <String>
-Policy <String>
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-Parameter <String>]
[-Mode <String>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzPolicyDefinition
-Name <String>
-ManagementGroupName <String>
-Policy <String>
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-Parameter <String>]
[-Mode <String>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzPolicyDefinition
-Name <String>
-SubscriptionId <String>
-Policy <String>
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-Parameter <String>]
[-Mode <String>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
New-AzPolicyDefinition Cmdlet 會建立或更新包含原則規則 JSON 格式的原則定義。
範例
範例 1:使用原則檔案建立原則定義
{
"if": {
"field": "location",
"notIn": ["eastus", "westus", "centralus"]
},
"then": {
"effect": "audit"
}
}
New-AzPolicyDefinition -Name 'LocationDefinition' -Policy C:\LocationPolicy.json
此命令會建立名為 LocationDefinition 的原則定義,其中包含在 C:\LocationPolicy.js中指定的原則規則。 上述提供 LocationPolicy.json 檔案的範例內容。 支援三種檔案內容格式:1。僅限原則規則(如上例)。 2. 原則屬性物件。 編輯原則定義時,此格式會顯示在入口網站中,而且可能包含參數。 3. 完整原則物件。 此格式是由 Azure 原則匯出函式所產生,而且可能包含參數。
注意:命令行上提供的值(例如參數、元數據)會覆寫檔案中存在的對應值。
範例 2:使用內嵌參數建立參數化原則定義
{
"if": {
"field": "location",
"notIn": "[parameters('listOfAllowedLocations')]"
},
"then": {
"effect": "audit"
}
}
New-AzPolicyDefinition -Name 'LocationDefinition' -Policy C:\LocationPolicy.json -Parameter '{ "listOfAllowedLocations": { "type": "array" } }'
此命令會建立名為 LocationDefinition 的原則定義,其中包含在 C:\LocationPolicy.js中指定的原則規則。 原則規則的參數定義會內嵌提供。
範例 3:在管理群組中內嵌建立原則定義
New-AzPolicyDefinition -Name 'VMPolicyDefinition' -ManagementGroupName Dept42 -DisplayName 'Virtual Machine policy definition' -Policy '{"if":{"field":"type","equals":"Microsoft.Compute/virtualMachines"},"then":{"effect":"deny"}}'
此命令會在管理群組 Dept42 中建立名為 VMPolicyDefinition 的原則定義。 命令會將原則指定為有效的 JSON 格式字串。
範例 4:使用元數據內嵌建立原則定義
New-AzPolicyDefinition -Name 'VMPolicyDefinition' -Metadata '{"category":"Virtual Machine"}' -Policy '{"if":{"field":"type","equals":"Microsoft.Compute/virtualMachines"},"then":{"effect":"deny"}}' | Format-List
此命令會建立名為 VMPolicyDefinition 的原則定義,其中元數據指出其類別為 「虛擬機」。 命令會將原則指定為有效的 JSON 格式字串。
範例 5:使用模式內嵌建立原則定義
New-AzPolicyDefinition -Name 'TagsPolicyDefinition' -Policy '{"if":{"value":"[less(length(field(''tags'')), 3)]","equals":true},"then":{"effect":"deny"}}' -Mode Indexed
此命令會建立名為 TagsPolicyDefinition 的原則定義,其模式為 “Indexed”,指出應該只針對支援卷標和位置的資源類型評估原則。
參數
-BackwardCompatible
導致 Cmdlet 使用舊版格式將原則特定屬性放在屬性包對象中傳回成品。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-DefaultProfile
DefaultProfile 參數無法運作。 如果針對不同的訂用帳戶執行 Cmdlet,請使用 SubscriptionId 參數。
類型: | PSObject |
別名: | AzureRMContext, AzureCredential |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Description
原則定義描述。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-DisplayName
原則定義的顯示名稱。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-ManagementGroupName
管理群組的標識碼。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Metadata
原則定義元數據。 元數據是開放式物件,通常是索引鍵值組的集合。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Mode
原則定義模式。 有些範例包括 All、Indexed、Microsoft.KeyVault.Data。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Name
要建立的原則定義名稱。
類型: | String |
別名: | PolicyDefinitionName |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Parameter
原則規則中使用的參數參數定義。 索引鍵是參數名稱。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Policy
原則規則。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-SubscriptionId
目標訂用帳戶的標識碼。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |