New-AzPolicyAssignment
정책 할당을 만듭니다.
Syntax
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>]
Description
New-AzPolicyAssignment cmdlet은 정책 할당을 만듭니다. 정책 및 범위를 지정합니다.
예제
예제 1: 구독 수준에서 정책 할당
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)"
첫 번째 명령은 Get-AzSubscription cmdlet을 사용하여 Subscription01이라는 구독을 가져오고 $Subscription 변수에 저장합니다. 두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 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 cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져오고 $ResourceGroup 변수에 저장합니다. 두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 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 cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져옵니다. 명령은 해당 개체를 $ResourceGroup 변수에 저장합니다. 두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 허용된 위치에 대한 기본 제공 정책 정의를 가져옵니다. 명령은 해당 개체를 $Policy 변수에 저장합니다. 세 번째 및 네 번째 명령은 이름에 "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 cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져오고 $ResourceGroup 변수에 저장합니다. 두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 허용된 위치에 대한 기본 제공 정책 정의를 가져오고 $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 cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져오고 $ResourceGroup 변수에 저장합니다. 두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 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 cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져오고 $ResourceGroup 변수에 저장합니다. 두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 VirtualMachinePolicy라는 정책 정의를 가져오고 $Policy 변수에 저장합니다. 세 번째 명령은 Get-AzUserAssignedIdentity cmdlet을 사용하여 UserAssignedIdentity1이라는 사용자 할당 관리 ID를 가져오고 $UserAssignedIdentity 변수에 저장합니다. 최종 명령은 $Policy 정책을 리소스 그룹에 할당합니다. id* 속성을 IdentityId 매개 변수에 전달하여 $UserAssignedIdentity Id 속성으로 식별된 사용자 할당 관리 ID가 정책 할당에 할당됩니다.
예제 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 cmdlet을 사용하여 Subscription01이라는 구독을 가져오고 $Subscription 변수에 저장합니다. 두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 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 cmdlet을 사용하여 VirtualMachinePolicySet이라는 정책 집합 정의를 가져오고 $PolicySet 변수에 저장합니다. 두 번째 명령은 비준수 메시지의 배열을 만듭니다. 전체 할당에 대한 범용 메시지 하나와 할당된 정책 집합 정의 내의 SKU 제한 정책과 관련된 하나의 메시지. 최종 명령은 $PolicySet 정책 집합 정의를 정책에 의해 리소스가 거부된 경우 표시되는 두 개의 비준수 메시지와 함께 구독에 할당합니다.
매개 변수
-ApiVersion
사용할 리소스 공급자 API의 버전을 지정합니다. 버전을 지정하지 않으면 이 cmdlet은 사용 가능한 최신 버전을 사용합니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AssignIdentity
이 정책 할당에 대한 시스템 할당 관리 ID를 생성하고 할당합니다. ID는 'deployIfNotExists' 및 'modify' 정책에 대한 배포를 실행할 때 사용됩니다. ID를 할당할 때는 위치가 필요합니다.
Type: | SwitchParameter |
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 |
-EnforcementMode
정책 할당에 대한 적용 모드입니다. 현재 유효한 값은 Default, DoNotEnforce입니다.
Type: | Nullable<T>[PolicyAssignmentEnforcementMode] |
Accepted values: | Default, DoNotEnforce |
Position: | Named |
Default value: | Default |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-IdentityId
이 정책 할당에 할당할 사용자 할당 관리 ID의 ID를 지정합니다. 이 값은 'UserAssigned' 값이 -IdentityType 매개 변수에 전달되는 경우에 필요합니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | 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 매개 변수가 우선적으로 적용됩니다.
Type: | Nullable<T>[ManagedIdentityType] |
Accepted values: | SystemAssigned, UserAssigned, None |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Location
정책 할당의 리소스 ID 위치입니다. 이 값은 -IdentityType 값이 제공될 때 필요합니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
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 |
-Name
정책 할당의 이름을 지정합니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NonComplianceMessage
리소스가 정책을 준수하지 않는 이유를 설명하는 비준수 메시지입니다.
Type: | PsNonComplianceMessage[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NotScope
정책 할당에 대한 범위가 아닙니다.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyDefinition
정책 규칙을 포함하는 PsPolicyDefinition 개체로 정책을 지정합니다.
Type: | PsPolicyDefinition |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyParameter
정책 매개 변수 파일 경로 또는 정책 매개 변수 문자열입니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyParameterObject
정책 매개 변수 개체입니다.
Type: | Hashtable |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PolicySetDefinition
정책 집합 정의 개체입니다.
Type: | PsPolicySetDefinition |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Pre
이 cmdlet은 사용할 버전을 자동으로 결정할 때 시험판 API 버전을 고려한다는 것을 나타냅니다.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
정책을 할당할 범위를 지정합니다.
예를 들어 리소스 그룹에 정책을 할당하려면 구독 /subscriptions/
ID/resourcegroups/
리소스 그룹 이름을 지정합니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | 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]]