次の方法で共有


New-AzPolicyAssignment

ポリシー割り当てを作成または更新します。

構文

New-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-EnforcementMode <String>]
   [-IdentityType <String>]
   [-IdentityId <String>]
   [-Location <String>]
   [-NonComplianceMessage <PSObject[]>]
   [-Override <IOverride[]>]
   [-ResourceSelector <IResourceSelector[]>]
   [-BackwardCompatible]
   [-DefaultProfile <PSObject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-EnforcementMode <String>]
   [-IdentityType <String>]
   [-IdentityId <String>]
   [-Location <String>]
   [-NonComplianceMessage <PSObject[]>]
   [-Override <IOverride[]>]
   [-ResourceSelector <IResourceSelector[]>]
   [-BackwardCompatible]
   [-PolicyDefinition <PSObject>]
   [-DefinitionVersion <String>]
   -PolicyParameterObject <Hashtable>
   [-DefaultProfile <PSObject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-EnforcementMode <String>]
   [-IdentityType <String>]
   [-IdentityId <String>]
   [-Location <String>]
   [-NonComplianceMessage <PSObject[]>]
   [-Override <IOverride[]>]
   [-ResourceSelector <IResourceSelector[]>]
   [-BackwardCompatible]
   [-PolicyDefinition <PSObject>]
   [-DefinitionVersion <String>]
   -PolicyParameter <String>
   [-DefaultProfile <PSObject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-EnforcementMode <String>]
   [-IdentityType <String>]
   [-IdentityId <String>]
   [-Location <String>]
   [-NonComplianceMessage <PSObject[]>]
   [-Override <IOverride[]>]
   [-ResourceSelector <IResourceSelector[]>]
   [-BackwardCompatible]
   -PolicyDefinition <PSObject>
   [-DefinitionVersion <String>]
   [-DefaultProfile <PSObject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

New-AzPolicyAssignment コマンドレットは、指定されたスコープと名前でポリシー割り当てを作成または更新します。 ポリシーの割り当ては、スコープ内に含まれるすべてのリソースに適用されます。 たとえば、リソース グループ スコープでポリシーを割り当てると、そのポリシーはグループ内のすべてのリソースに適用されます。

例 1: サブスクリプション レベルでのポリシーの割り当て

$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)"

最初のコマンドは、Get-AzSubscription コマンドレットを使用して Subscription01 という名前のサブスクリプションを取得し、$Subscription変数に格納します。 2 番目のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して VirtualMachinePolicy という名前のポリシー定義を取得し、$Policy変数に格納します。 最後のコマンドは、サブスクリプション スコープ文字列によって識別されるサブスクリプションのレベルで、$Policyでポリシーを割り当てます。

例 2: リソース グループ レベルでのポリシーの割り当て

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId

最初のコマンドは、Get-AzResourceGroup コマンドレットを使用して ResourceGroup11 という名前のリソース グループを取得し、$ResourceGroup変数に格納します。 2 番目のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して VirtualMachinePolicy という名前のポリシー定義を取得し、$Policy変数に格納します。 最後のコマンドは、$ResourceGroupの ResourceId プロパティによって識別されるリソース グループのレベルで$Policyポリシーを割り当てます。

例 3: ポリシー パラメーター オブジェクトを使用したリソース グループ レベルでのポリシーの割り当て

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.DisplayName -eq 'Allowed locations'}
$Locations = Get-AzLocation | Where-Object displayname -like '*east*'
$AllowedLocations = @{'listOfAllowedLocations'=($Locations.location)}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameterObject $AllowedLocations

最初のコマンドは、Get-AzResourceGroup コマンドレットを使用して ResourceGroup11 という名前のリソース グループを取得します。 このコマンドは、そのオブジェクトを $ResourceGroup 変数に格納します。 2 番目のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して、許可されている場所の組み込みのポリシー定義を取得します。 このコマンドは、そのオブジェクトを $Policy 変数に格納します。 3 番目と 4 番目のコマンドは、名前に "east" を持つすべての Azure リージョンを含むオブジェクトを作成します。 コマンドは、そのオブジェクトを $AllowedLocations 変数に格納します。 最後のコマンドは、$AllowedLocationsのポリシー パラメーター オブジェクトを使用して、リソース グループのレベルで$Policyのポリシーを割り当てます。 $ResourceGroupの ResourceId プロパティは、リソース グループを識別します。

例 4: ポリシー パラメーター ファイルを使用したリソース グループ レベルでのポリシーの割り当て

'{
    "listOfAllowedLocations":  {
      "value": [
        "westus",
        "westeurope",
        "japanwest"
      ]
    }
}' > .\AllowedLocations.json

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.DisplayName -eq 'Allowed locations'}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameter .\AllowedLocations.json

最初のコマンドは、ローカル作業ディレクトリに AllowedLocations.json という名前のパラメーター ファイルを作成します。 2 番目のコマンドは、Get-AzResourceGroup コマンドレットを使用して ResourceGroup11 という名前のリソース グループを取得し、$ResourceGroup変数に格納します。 3 番目のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して許可される場所の組み込みのポリシー定義を取得し、$Policy変数に格納します。 最後のコマンドは、ローカル作業ディレクトリからAllowedLocations.jsonポリシー パラメーター ファイルを使用して、$ResourceGroupの ResourceId プロパティによって識別されるリソース グループで$Policyのポリシーを割り当てます。

例 5: システム割り当てマネージド ID を使用したポリシーの割り当て

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'SystemAssigned'

最初のコマンドは、Get-AzResourceGroup コマンドレットを使用して ResourceGroup11 という名前のリソース グループを取得し、$ResourceGroup変数に格納します。 2 番目のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して VirtualMachinePolicy という名前のポリシー定義を取得し、$Policy変数に格納します。 最後のコマンドは、$Policy内のポリシーをリソース グループに割り当てます。 システム割り当てマネージド ID が自動的に作成され、ポリシー割り当てに割り当てられます。

例 6: ユーザー割り当てマネージド ID を使用したポリシーの割り当て

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$UserAssignedIdentity = Get-AzUserAssignedIdentity -ResourceGroupName 'ResourceGroup1' -Name 'UserAssignedIdentity1'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'UserAssigned' -IdentityId $UserAssignedIdentity.Id

最初のコマンドは、Get-AzResourceGroup コマンドレットを使用して ResourceGroup11 という名前のリソース グループを取得し、$ResourceGroup変数に格納します。 2 番目のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して VirtualMachinePolicy という名前のポリシー定義を取得し、$Policy変数に格納します。 3 番目のコマンドは、Get-AzUserAssignedIdentity コマンドレットを使用して UserAssignedIdentity1 という名前のユーザー割り当てマネージド ID を取得し、$UserAssignedIdentity変数に格納します。 最後のコマンドは、$Policy内のポリシーをリソース グループに割り当てます。 $UserAssignedIdentityの Id プロパティによって識別されるユーザー割り当てマネージド ID は、 Id* プロパティを IdentityId パラメーターに渡すことによってポリシー割り当てに割り当てられます。

例 7: 強制モード プロパティを使用したポリシーの割り当て

$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)" -EnforcementMode DoNotEnforce

最初のコマンドは、Get-AzSubscription コマンドレットを使用して Subscription01 という名前のサブスクリプションを取得し、$Subscription変数に格納します。 2 番目のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して VirtualMachinePolicy という名前のポリシー定義を取得し、$Policy変数に格納します。 最後のコマンドは、サブスクリプション スコープ文字列によって識別されるサブスクリプションのレベルで、$Policyでポリシーを割り当てます。

割り当ては、 DoNotEnforce の EnforcementMode 値で設定されます。つまり リソースの作成時または更新中にポリシー効果が適用されません。

例 8: コンプライアンス違反メッセージを含むポリシーの割り当て

$PolicySet = Get-AzPolicySetDefinition -Name 'VirtualMachinePolicySet'
$NonComplianceMessages = @(@{Message="Only DsV2 SKUs are allowed."; PolicyDefinitionReferenceId="DefRef1"}, @{Message="Virtual machines must follow cost management best practices."})
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicySetDefinition $PolicySet -NonComplianceMessage $NonComplianceMessages

最初のコマンドは、Get-AzPolicySetDefinition コマンドレットを使用して VirtualMachinePolicySet という名前のポリシー セット定義を取得し、$PolicySet変数に格納します。 2 番目のコマンドは、コンプライアンス違反メッセージの配列を作成します。 割り当て全体に対する 1 つの汎用メッセージと、割り当てられたポリシー セット定義内の SKU 制限ポリシーに固有の 1 つのメッセージ。 最後のコマンドは、リソースがポリシーによって拒否された場合に表示される 2 つの非準拠メッセージを使用して、$PolicySetのポリシー セット定義をサブスクリプションに割り当てます。

例 9: リソース セレクターを使用したポリシーの割り当て

$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$ResourceSelector = @{Name = "MyLocationSelector"; Selector = @(@{Kind = "resourceLocation"; In = @("eastus", "eastus2")})}
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -ResourceSelector $ResourceSelector

最初のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して VirtualMachinePolicy という名前のポリシー定義を取得し、$Policy変数に格納します。 2 番目のコマンドは、割り当てを指定するために使用されるリソース セレクター オブジェクトを作成し、米国東部または米国東部 2 にあるリソースにのみ適用し、$ResourceSelector変数に格納します。 最後のコマンドは、$ResourceSelectorで指定されたリソース セレクターを使用して、$Policyのポリシー定義をサブスクリプションに割り当てます。

例 10: オーバーライドを使用したポリシーの割り当て

$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$Selector = @{Kind = "resourceLocation"; In = @("eastus", "eastus2")}
$Override = @(@{Kind = "policyEffect"; Value = 'Disabled'; Selector = @($Selector)})
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Override $Override

最初のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して VirtualMachinePolicy という名前のポリシー定義を取得し、$Policy変数に格納します。 2 番目のコマンドは、米国東部または米国東部 2 の場所を指定する場所セレクターを作成し、$Selector変数に格納します。 3 番目のコマンドは、割り当てられた定義が、$Selector オブジェクトによって識別される場所で Disabled 効果を持つ必要があることを指定するために使用されるオーバーライド オブジェクトを作成し、$Override変数に格納します。 最後のコマンドは、$Policyのポリシー定義を、$Overrideで指定されたオーバーライドを使用してサブスクリプションに割り当てます。

例 11: [Backcompat] ポリシー パラメーター オブジェクトを使用したリソース グループ レベルでのポリシーの割り当て

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.Properties.DisplayName -eq 'Allowed locations'}
$Locations = Get-AzLocation | Where-Object displayname -like '*east*'
$AllowedLocations = @{'listOfAllowedLocations'=($Locations.location)}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameterObject $AllowedLocations

最初のコマンドは、Get-AzResourceGroup コマンドレットを使用して ResourceGroup11 という名前のリソース グループを取得します。 このコマンドは、そのオブジェクトを $ResourceGroup 変数に格納します。 2 番目のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して、許可されている場所の組み込みのポリシー定義を取得します。 このコマンドは、そのオブジェクトを $Policy 変数に格納します。 3 番目と 4 番目のコマンドは、名前に "east" を持つすべての Azure リージョンを含むオブジェクトを作成します。 コマンドは、そのオブジェクトを $AllowedLocations 変数に格納します。 最後のコマンドは、$AllowedLocationsのポリシー パラメーター オブジェクトを使用して、リソース グループのレベルで$Policyのポリシーを割り当てます。 $ResourceGroupの ResourceId プロパティは、リソース グループを識別します。

例 12: [Backcompat] ポリシー パラメーター ファイルを使用したリソース グループ レベルでのポリシーの割り当て

'{
    "listOfAllowedLocations":  {
      "value": [
        "westus",
        "westeurope",
        "japanwest"
      ]
    }
}' > .\AllowedLocations.json

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.Properties.DisplayName -eq 'Allowed locations'}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameter .\AllowedLocations.json

最初のコマンドは、ローカル作業ディレクトリに AllowedLocations.json という名前のパラメーター ファイルを作成します。 2 番目のコマンドは、Get-AzResourceGroup コマンドレットを使用して ResourceGroup11 という名前のリソース グループを取得し、$ResourceGroup変数に格納します。 3 番目のコマンドは、Get-AzPolicyDefinition コマンドレットを使用して許可される場所の組み込みのポリシー定義を取得し、$Policy変数に格納します。 最後のコマンドは、ローカル作業ディレクトリからAllowedLocations.jsonポリシー パラメーター ファイルを使用して、$ResourceGroupの ResourceId プロパティによって識別されるリソース グループで$Policyのポリシーを割り当てます。

パラメーター

-BackwardCompatible

プロパティ バッグ オブジェクトにポリシー固有のプロパティを配置する従来の形式を使用して、コマンドレットから成果物が返されます。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DefaultProfile

DefaultProfile パラメーターは機能しません。 別のサブスクリプションに対してコマンドレットを実行する場合は、使用可能な場合は SubscriptionId パラメーターを使用します。

型:PSObject
Aliases:AzureRMContext, AzureCredential
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DefinitionVersion

ポリシー定義またはポリシー セット定義のバージョンを示す

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Description

このメッセージは、ポリシー違反が発生した場合の応答の一部になります。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-DisplayName

ポリシー割り当ての表示名。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-EnforcementMode

ポリシー割り当て適用モード。 使用できる値は Default と DoNotEnforce です。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-IdentityId

ポリシーに関連付けられているユーザー ID。 ユーザー ID 辞書の主な照会先は、次の形式の ARM リソース ID になります: 「/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}」。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-IdentityType

ID の種類。 これは、システム割り当て ID またはユーザー割り当て ID をリソースに追加するときに必要な唯一のフィールドです。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Location

ポリシー割り当ての場所。 マネージド ID を使用する場合にのみ必要です。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Metadata

ポリシー割り当てのメタデータ。 メタデータはオープン エンド オブジェクトであり、通常はキーと値のペアのコレクションです。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Name

ポリシー割り当ての名前。

型:String
Aliases:PolicyAssignmentName
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-NonComplianceMessage

リソースがポリシーに準拠していない理由を説明するメッセージ。 構築するには、NONCOMPLIANCEMESSAGE プロパティの NOTES セクションを参照し、ハッシュ テーブルを作成します。

型:PSObject[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-NotScope

ポリシーの除外されたスコープ。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Override

ポリシー プロパティ値のオーバーライド。

型:IOverride[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PolicyDefinition

ポリシー定義またはポリシー セット定義オブジェクトを受け入れる

型:PSObject
Aliases:PolicySetDefinition
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-PolicyParameter

割り当てられたポリシー ルールのパラメーター値。 キーはパラメーター名です。

型:String
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PolicyParameterObject

割り当てられたポリシー ルールのパラメーター値。 キーはパラメーター名です。

型:Hashtable
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ResourceSelector

リソース のプロパティでポリシーをフィルター処理するリソース セレクターの一覧。

型:IResourceSelector[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Scope

ポリシー割り当てのスコープ。 有効なスコープは、管理グループ (形式: '/providers/Microsoft.Management/managementGroups/{managementGroup}')、サブスクリプション (形式: '/subscriptions/{subscriptionId}')、リソース グループ (形式: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}') です。 またはリソース (形式: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

PSObject

PSObject[]

String

String[]

出力

IPolicyAssignment