New-AzPolicyAssignment
ポリシーの割り当てを作成します。
構文
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-PolicyDefinition <PsPolicyDefinition>]
[-PolicySetDefinition <PsPolicySetDefinition>]
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
-PolicyDefinition <PsPolicyDefinition>
[-PolicySetDefinition <PsPolicySetDefinition>]
-PolicyParameterObject <Hashtable>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
-PolicyDefinition <PsPolicyDefinition>
[-PolicySetDefinition <PsPolicySetDefinition>]
-PolicyParameter <String>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-PolicyDefinition <PsPolicyDefinition>]
-PolicySetDefinition <PsPolicySetDefinition>
-PolicyParameterObject <Hashtable>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-PolicyDefinition <PsPolicyDefinition>]
-PolicySetDefinition <PsPolicySetDefinition>
-PolicyParameter <String>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<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 {$_.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 プロパティは、リソース グループを識別します。
例 4: ポリシー パラメーター ファイルを使用したリソース グループ レベルでのポリシーの割り当て
次の内容を使用して、ローカル作業ディレクトリに AllowedLocations.json という名前のファイルを作成します。
<#{
"listOfAllowedLocations": {
"value": [
"westus",
"westeurope",
"japanwest"
]
}
}#>
$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
最初のコマンドは、Get-AzResourceGroup コマンドレットを使用して ResourceGroup11 という名前のリソース グループを取得し、$ResourceGroup変数に格納します。 2 番目のコマンドは、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のポリシー セット定義をサブスクリプションに割り当てます。
パラメーター
-ApiVersion
使用するリソース プロバイダー API のバージョンを指定します。 バージョンを指定しない場合、このコマンドレットは使用可能な最新バージョンを使用します。
型: | String |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AssignIdentity
このポリシー割り当てのシステム割り当てマネージド ID を生成して割り当てます。 ID は、'deployIfNotExists' および 'modify' ポリシーのデプロイを実行するときに使用されます。 ID を割り当てるときに場所が必要です。
型: | SwitchParameter |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultProfile
Azure との通信に使用される資格情報、アカウント、テナント、サブスクリプション
型: | IAzureContextContainer |
Aliases: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
ポリシー割り当ての説明
型: | String |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DisplayName
ポリシー割り当ての表示名を指定します。
型: | String |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EnforcementMode
ポリシー割り当ての適用モード。 現在、有効な値は Default、DoNotEnforce です。
型: | Nullable<T>[PolicyAssignmentEnforcementMode] |
承認された値: | Default, DoNotEnforce |
Position: | Named |
既定値: | Default |
必須: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-IdentityId
このポリシー割り当てに割り当てるユーザー割り当てマネージド ID の ID を指定します。 この値は、値 'UserAssigned' が -IdentityType パラメーターに渡される場合に必要です。
型: | String |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IdentityType
このポリシー割り当てに割り当てるマネージド ID の種類を指定します。 "SystemAssigned" 値を指定すると、システム割り当てマネージド ID が生成され、このポリシー割り当てに割り当てられます。 'UserAssigned' 値を指定すると、ID を使用して -IdentityId パラメーターに渡されたユーザー割り当て ID がこのポリシー割り当てに割り当てられます。 ID は、'deployIfNotExists' および 'modify' ポリシーのデプロイを実行するときに使用されます。 ID を割り当てるときに場所が必要です。 システム割り当て ID が作成された後、New-AzRoleAssignment を使用して ID にアクセス許可を付与する必要があります。 AssignIdentity パラメーターと IdentityType パラメーターの両方が使用されている場合、IdentityType パラメーターが優先されます。
型: | Nullable<T>[ManagedIdentityType] |
承認された値: | SystemAssigned, UserAssigned, None |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Location
ポリシー割り当てのリソース ID の場所。 これは、-IdentityType 値が指定されている場合に必要です。
型: | String |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Metadata
新しいポリシー割り当てのメタデータ。 これは、メタデータを含むファイル名へのパスか、メタデータを文字列として指定できます。
型: | String |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
ポリシー割り当ての名前を指定します。
型: | String |
Position: | Named |
既定値: | None |
必須: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NonComplianceMessage
リソースがポリシーに準拠していない理由を示す非準拠メッセージ。
型: | PsNonComplianceMessage[] |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NotScope
ポリシー割り当てのスコープではありません。
型: | String[] |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyDefinition
ポリシー規則を含む PsPolicyDefinition オブジェクトとしてポリシーを指定します。
型: | PsPolicyDefinition |
Position: | Named |
既定値: | None |
必須: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyParameter
ポリシー パラメーター ファイルのパスまたはポリシー パラメーター文字列。
型: | String |
Position: | Named |
既定値: | None |
必須: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyParameterObject
ポリシー パラメーター オブジェクト。
型: | Hashtable |
Position: | Named |
既定値: | None |
必須: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PolicySetDefinition
ポリシー セット定義オブジェクト。
型: | PsPolicySetDefinition |
Position: | Named |
既定値: | None |
必須: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Pre
このコマンドレットは、使用するバージョンを自動的に決定するときに、プレリリース API バージョンを考慮することを示します。
型: | SwitchParameter |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
ポリシーを割り当てるスコープを指定します。
たとえば、リソース グループにポリシーを割り当てるには、サブスクリプション ID/resourcegroups/
リソース グループ名を/subscriptions/
指定します。
型: | String |
Position: | Named |
既定値: | None |
必須: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
入力
String[]
Nullable<T>[[Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy.PolicyAssignmentEnforcementMode, Microsoft.Azure.PowerShell.Cmdlets.ResourceManager, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null]]