New-AzureRmPolicyDefinition
建立原則定義。
警告
自 2024 年 2 月 29 日起,AzureRM PowerShell 模組已正式淘汰。 建議使用者從 AzureRM 遷移至 Az PowerShell 模組,以確保持續支援和更新。
雖然 AzureRM 模組可能仍可運作,但不再維護或支援它,但會根據用戶的判斷權和風險放置任何繼續使用。 如需轉換至 Az 模組的指引,請參閱我們的 移轉資源 。
語法
New-AzureRmPolicyDefinition
-Name <String>
[-DisplayName <String>]
[-Description <String>]
-Policy <String>
[-Metadata <String>]
[-Parameter <String>]
[-Mode <PolicyDefinitionMode>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[-InformationAction <ActionPreference>]
[-InformationVariable <String>]
[<CommonParameters>]
New-AzureRmPolicyDefinition
-Name <String>
[-DisplayName <String>]
[-Description <String>]
-Policy <String>
[-Metadata <String>]
[-Parameter <String>]
[-Mode <PolicyDefinitionMode>]
-ManagementGroupName <String>
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[-InformationAction <ActionPreference>]
[-InformationVariable <String>]
[<CommonParameters>]
New-AzureRmPolicyDefinition
-Name <String>
[-DisplayName <String>]
[-Description <String>]
-Policy <String>
[-Metadata <String>]
[-Parameter <String>]
[-Mode <PolicyDefinitionMode>]
-SubscriptionId <Guid>
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[-InformationAction <ActionPreference>]
[-InformationVariable <String>]
[<CommonParameters>]
Description
New-AzureRmPolicyDefinition Cmdlet 會建立原則定義,其中包含 JavaScript 物件表示法 (JSON) 格式的原則規則。
範例
範例 1:使用原則檔案建立原則定義
{
"if": {
"field": "location",
"notIn": ["eastus", "westus", "centralus"]
},
"then": {
"effect": "audit"
}
}
PS C:\> New-AzureRmPolicyDefinition -Name 'LocationDefinition' -Policy C:\LocationPolicy.json
此命令會建立名為 LocationDefinition 的原則定義,其中包含 C:\LocationPolicy.json中指定的原則規則。 上述提供LocationPolicy.json檔案的範例內容。
範例 2:使用內嵌參數建立參數化原則定義
{
"if": {
"field": "location",
"notIn": "[parameters('listOfAllowedLocations')]"
},
"then": {
"effect": "audit"
}
}
PS C:\> New-AzureRmPolicyDefinition -Name 'LocationDefinition' -Policy C:\LocationPolicy.json -Parameter '{ "listOfAllowedLocations": { "type": "array" } }'
此命令會建立名為 LocationDefinition 的原則定義,其中包含 C:\LocationPolicy.json中指定的原則規則。 原則規則的參數定義會內嵌提供。
範例 3:在管理群組中內嵌建立原則定義
PS C:\> New-AzureRmPolicyDefinition -Name 'VMPolicyDefinition' -ManagementGroupName Dept42 -DisplayName 'Virtual Machine policy definition' -Policy '{"if":{"source":"action","equals":"Microsoft.Compute/virtualMachines/write"},"then":{"effect":"deny"}}'
此命令會在管理群組 Dept42 中建立名為 VMPolicyDefinition 的原則定義。 命令會將原則指定為有效的 JSON 格式字串。
範例 4:使用元數據內嵌建立原則定義
PS C:\> New-AzureRmPolicyDefinition -Name 'VMPolicyDefinition' -Metadata '{"Category":"Virtual Machine"}' -Policy '{"if":{"source":"action","equals":"Microsoft.Compute/virtualMachines/write"},"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
此命令會建立名為 VMPolicyDefinition 的原則定義,其中元數據指出其類別為 「虛擬機」。 命令會將原則指定為有效的 JSON 格式字串。
參數
-ApiVersion
指定要使用的資源提供者 API 版本。 如果您未指定版本,此 Cmdlet 會使用最新的可用版本。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-DefaultProfile
用於與 azure 通訊的認證、帳戶、租用戶和訂用帳戶
類型: | IAzureContextContainer |
別名: | AzureRmContext, AzureCredential |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Description
指定原則定義的描述。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-DisplayName
指定原則定義的顯示名稱。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-InformationAction
指定此 Cmdlet 如何回應資訊事件。 此參數可接受的值為:
- 繼續
- 忽略
- 詢問
- SilentlyContinue
- 停止
- 暫止
類型: | ActionPreference |
別名: | infa |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-InformationVariable
指定資訊變數。
類型: | String |
別名: | iv |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ManagementGroupName
新原則定義的管理群組名稱。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Metadata
原則定義的元數據。 這可以是包含元數據的檔名路徑,也可以是元數據作為字串的路徑
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Mode
原則定義的模式
類型: | Nullable<T>[PolicyDefinitionMode] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Name
指定原則定義的名稱。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Parameter
原則定義的參數宣告。 這可以是包含參數宣告的檔名路徑,或參數宣告為字串。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Policy
指定原則定義的原則規則。 您可以指定.json檔案的路徑,或包含 JSON 格式原則的字串。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Pre
指出此 Cmdlet 會在自動判斷要使用的版本時,考慮發行前版本 API 版本。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-SubscriptionId
新原則定義的訂用帳戶標識碼。
類型: | Nullable<T>[Guid] |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |