New-AzPolicyAssignment cmdlet은 지정된 범위와 이름으로 정책 할당을 만들거나 업데이트합니다.
정책 할당은 해당 범위 내에 포함된 모든 리소스에 적용됩니다.
예를 들어 리소스 그룹 범위에서 정책을 할당하면 해당 정책이 그룹의 모든 리소스에 적용됩니다.
첫 번째 명령은 Get-AzSubscription cmdlet을 사용하여 Subscription01이라는 구독을 가져오고 $Subscription 변수에 저장합니다.
두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 VirtualMachinePolicy라는 정책 정의를 가져오고 $Policy 변수에 저장합니다.
최종 명령은 구독 범위 문자열로 식별되는 구독 수준에서 $Policy 정책을 할당합니다.
첫 번째 명령은 Get-AzResourceGroup cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져오고 $ResourceGroup 변수에 저장합니다.
두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 VirtualMachinePolicy라는 정책 정의를 가져오고 $Policy 변수에 저장합니다.
최종 명령은 $ResourceGroup ResourceId 속성으로 식별되는 리소스 그룹의 수준에서 $Policy 정책을 할당합니다.
첫 번째 명령은 Get-AzResourceGroup cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져옵니다.
명령은 해당 개체를 $ResourceGroup 변수에 저장합니다.
두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 허용된 위치에 대한 기본 제공 정책 정의를 가져옵니다.
명령은 해당 개체를 $Policy 변수에 저장합니다.
세 번째 및 네 번째 명령은 이름에 "east"가 있는 모든 Azure 지역을 포함하는 개체를 만듭니다.
명령은 해당 개체를 $AllowedLocations 변수에 저장합니다.
최종 명령은 $AllowedLocations 정책 매개 변수 개체를 사용하여 리소스 그룹 수준에서 $Policy 정책을 할당합니다.
$ResourceGroup ResourceId 속성은 리소스 그룹을 식별합니다.
첫 번째 명령은 로컬 작업 디렉터리에 AllowedLocations.json 매개 변수 파일을 만듭니다.
두 번째 명령은 Get-AzResourceGroup cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져오고 $ResourceGroup 변수에 저장합니다.
세 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 허용된 위치에 대한 기본 제공 정책 정의를 가져오고 $Policy 변수에 저장합니다.
최종 명령은 로컬 작업 디렉터리의 정책 매개 변수 파일 AllowedLocations.json 사용하여 $ResourceGroup ResourceId 속성으로 식별된 리소스 그룹의 $Policy 정책을 할당합니다.
첫 번째 명령은 Get-AzResourceGroup cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져오고 $ResourceGroup 변수에 저장합니다.
두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 VirtualMachinePolicy라는 정책 정의를 가져오고 $Policy 변수에 저장합니다.
최종 명령은 $Policy 정책을 리소스 그룹에 할당합니다.
시스템 할당 관리 ID가 자동으로 만들어지고 정책 할당에 할당됩니다.
첫 번째 명령은 Get-AzResourceGroup cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져오고 $ResourceGroup 변수에 저장합니다.
두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 VirtualMachinePolicy라는 정책 정의를 가져오고 $Policy 변수에 저장합니다.
세 번째 명령은 Get-AzUserAssignedIdentity cmdlet을 사용하여 UserAssignedIdentity1이라는 사용자 할당 관리 ID를 가져오고 $UserAssignedIdentity 변수에 저장합니다.
최종 명령은 $Policy 정책을 리소스 그룹에 할당합니다.
id* 속성을 IdentityId 매개 변수에 전달하여 $UserAssignedIdentity Id 속성으로 식별된 사용자 할당 관리 ID가 정책 할당에 할당됩니다.
첫 번째 명령은 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 정책 집합 정의를 정책에 의해 리소스가 거부된 경우 표시되는 두 개의 비준수 메시지와 함께 구독에 할당합니다.
첫 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 VirtualMachinePolicy라는 정책 정의를 가져오고 $Policy 변수에 저장합니다.
두 번째 명령은 할당을 지정하는 데 사용할 리소스 선택기 개체를 만들어 미국 동부 또는 미국 동부 2에 있는 리소스에만 적용하고 $ResourceSelector 변수에 저장합니다.
최종 명령은 $ResourceSelector 지정된 리소스 선택기를 사용하여 $Policy 정책 정의를 구독에 할당합니다.
첫 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 VirtualMachinePolicy라는 정책 정의를 가져오고 $Policy 변수에 저장합니다.
두 번째 명령은 미국 동부 또는 미국 동부 2 위치를 지정하는 위치 선택기를 만들고 $Selector 변수에 저장합니다.
세 번째 명령은 할당된 정의가 $Selector 개체로 식별된 위치에 Disabled 효과를 적용하도록 지정하고 $Override 변수에 저장하는 데 사용할 재정의 개체를 만듭니다.
최종 명령은 $Override 지정된 재정의를 사용하여 $Policy 정책 정의를 구독에 할당합니다.
예제 11: [Backcompat] 정책 매개 변수 개체를 사용하여 리소스 그룹 수준에서 정책 할당
첫 번째 명령은 Get-AzResourceGroup cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져옵니다.
명령은 해당 개체를 $ResourceGroup 변수에 저장합니다.
두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 허용된 위치에 대한 기본 제공 정책 정의를 가져옵니다.
명령은 해당 개체를 $Policy 변수에 저장합니다.
세 번째 및 네 번째 명령은 이름에 "east"가 있는 모든 Azure 지역을 포함하는 개체를 만듭니다.
명령은 해당 개체를 $AllowedLocations 변수에 저장합니다.
최종 명령은 $AllowedLocations 정책 매개 변수 개체를 사용하여 리소스 그룹 수준에서 $Policy 정책을 할당합니다.
$ResourceGroup ResourceId 속성은 리소스 그룹을 식별합니다.
예제 12: [Backcompat] 정책 매개 변수 파일을 사용하여 리소스 그룹 수준에서 정책 할당
첫 번째 명령은 로컬 작업 디렉터리에 AllowedLocations.json 매개 변수 파일을 만듭니다.
두 번째 명령은 Get-AzResourceGroup cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져오고 $ResourceGroup 변수에 저장합니다.
세 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 허용된 위치에 대한 기본 제공 정책 정의를 가져오고 $Policy 변수에 저장합니다.
최종 명령은 로컬 작업 디렉터리의 정책 매개 변수 파일 AllowedLocations.json 사용하여 $ResourceGroup ResourceId 속성으로 식별된 리소스 그룹의 $Policy 정책을 할당합니다.
매개 변수
-BackwardCompatible
cmdlet이 속성 모음 개체에 정책별 속성을 배치하는 레거시 형식을 사용하여 아티팩트를 반환하도록 합니다.
정책과 연결된 사용자 ID입니다.
사용자 ID 사전 키 참조는 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}' 형식의 ARM 리소스 ID입니다.
정책 할당의 범위입니다.
유효한 범위는 관리 그룹(형식: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), 구독(형식: '/subscriptions/{subscriptionId}'), 리소스 그룹(형식: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', 또는 리소스(형식: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.