New-AzPolicyDefinition

ポリシー定義を作成します。

構文

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

説明

New-AzPolicyDefinition コマンドレットは、JavaScript Object Notation (JSON) 形式のポリシー 規則を含むポリシー定義を作成します。

例 1: ポリシー ファイルを使用してポリシー定義を作成する

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

このコマンドは、C:\LocationPolicy.json で指定されたポリシー 規則を含む LocationDefinition という名前のポリシー定義を作成します。 上記では、LocationPolicy.json ファイルのコンテンツの例を示します。 次の 3 つのファイル コンテンツ形式がサポートされています。

  1. ポリシー ルールのみ (上記の例)。
  2. ポリシー プロパティ オブジェクト。 この形式は、ポリシー定義を編集するときにポータルに表示され、パラメーターを含めることができます。
  3. 完全なポリシー オブジェクト。 この形式は、Azure Policy エクスポート関数によって生成され、パラメーターを含めることができます。

注: コマンド ラインで指定された値 (パラメーター、メタデータなど) は、ファイルに存在する対応する値をオーバーライドします。

例 2: インライン パラメーターを使用してパラメーター化されたポリシー定義を作成する

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

このコマンドは、C:\LocationPolicy.json で指定されたポリシー 規則を含む LocationDefinition という名前のポリシー定義を作成します。 ポリシー規則のパラメーター定義はインラインで提供されます。

例 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"}}'

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 形式の文字列としてポリシーを指定します。

例 5: モードを使用してポリシー定義をインラインで作成する

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

このコマンドは、タグと場所をサポートするリソースの種類に対してのみポリシーを評価する必要があることを示す、モード "Indexed" を持つ TagsPolicyDefinition という名前のポリシー定義を作成します。

パラメーター

-ApiVersion

使用するリソース プロバイダー API のバージョンを指定します。 バージョンを指定しない場合、このコマンドレットは使用可能な最新バージョンを使用します。

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

-DefaultProfile

Azure との通信に使用される資格情報、アカウント、テナント、サブスクリプション

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

-Description

ポリシー定義の説明を指定します。

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

-DisplayName

ポリシー定義の表示名を指定します。

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

-ManagementGroupName

新しいポリシー定義の管理グループの名前。

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

-Metadata

ポリシー定義のメタデータ。 これは、メタデータを含むファイル名へのパス、またはメタデータを文字列として指定できます。

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

-Mode

ポリシー定義のモード

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

-Name

ポリシー定義の名前を指定します。

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

-Parameter

ポリシー定義のパラメーター宣言。 パラメーター宣言を含むファイル名へのパス、または文字列としてのパラメーター宣言を指定できます。

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

-Policy

ポリシー定義のポリシー規則を指定します。 ポリシーを含む.json ファイルまたは文字列のパスを JSON 形式で指定できます。

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

-Pre

このコマンドレットは、使用するバージョンを自動的に決定するときに、プレリリース API バージョンを考慮することを示します。

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

-SubscriptionId

新しいポリシー定義のサブスクリプション ID。

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

入力

String

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

出力

PSObject