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>]
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 {$_.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: 정책 매개 변수 파일을 사용하여 리소스 그룹 수준에서 정책 할당
'{
"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 매개 변수 파일을 만듭니다. 두 번째 명령은 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 정책 집합 정의를 정책에 의해 리소스가 거부된 경우 표시되는 두 개의 비준수 메시지와 함께 구독에 할당합니다.
예제 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 cmdlet을 사용하여 VirtualMachinePolicy라는 정책 정의를 가져오고 $Policy 변수에 저장합니다. 두 번째 명령은 할당을 지정하는 데 사용할 리소스 선택기 개체를 만들어 미국 동부 또는 미국 동부 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 cmdlet을 사용하여 VirtualMachinePolicy라는 정책 정의를 가져오고 $Policy 변수에 저장합니다. 두 번째 명령은 미국 동부 또는 미국 동부 2 위치를 지정하는 위치 선택기를 만들고 $Selector 변수에 저장합니다. 세 번째 명령은 할당된 정의가 $Selector 개체로 식별된 위치에 Disabled 효과를 적용하도록 지정하고 $Override 변수에 저장하는 데 사용할 재정의 개체를 만듭니다. 최종 명령은 $Override 지정된 재정의를 사용하여 $Policy 정책 정의를 구독에 할당합니다.
예제 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 cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져옵니다. 명령은 해당 개체를 $ResourceGroup 변수에 저장합니다. 두 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 허용된 위치에 대한 기본 제공 정책 정의를 가져옵니다. 명령은 해당 개체를 $Policy 변수에 저장합니다. 세 번째 및 네 번째 명령은 이름에 "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 매개 변수 파일을 만듭니다. 두 번째 명령은 Get-AzResourceGroup cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져오고 $ResourceGroup 변수에 저장합니다. 세 번째 명령은 Get-AzPolicyDefinition cmdlet을 사용하여 허용된 위치에 대한 기본 제공 정책 정의를 가져오고 $Policy 변수에 저장합니다. 최종 명령은 로컬 작업 디렉터리에서 AllowedLocations.json 정책 매개 변수 파일을 사용하여 $ResourceGroup ResourceId 속성으로 식별된 리소스 그룹의 $Policy 정책을 할당합니다.
매개 변수
-BackwardCompatible
cmdlet이 속성 모음 개체에 정책별 속성을 배치하는 레거시 형식을 사용하여 아티팩트를 반환하도록 합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Confirm
cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DefaultProfile
DefaultProfile 매개 변수가 작동하지 않습니다. 다른 구독에 대해 cmdlet을 실행하는 경우 사용 가능한 경우 SubscriptionId 매개 변수를 사용합니다.
형식: | PSObject |
별칭: | AzureRMContext, AzureCredential |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DefinitionVersion
정책 정의 또는 정책 집합 정의의 버전 표시
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Description
이 메시지는 정책 위반의 경우 응답의 일부가 됩니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-DisplayName
정책 할당의 표시 이름입니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-EnforcementMode
정책 할당 적용 모드입니다. 가능한 값은 Default 및 DoNotEnforce입니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-IdentityId
정책과 연결된 사용자 ID입니다. 사용자 ID 사전 키 참조는 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}' 형식의 ARM 리소스 ID입니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-IdentityType
ID 형식입니다. 이 필드는 리소스에 시스템 또는 사용자 할당 ID를 추가할 때 유일한 필수 필드입니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Location
정책 할당의 위치입니다. 관리 ID를 활용하는 경우에만 필요합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Metadata
정책 할당 메타데이터입니다. 메타데이터는 열려 있는 종료된 개체이며 일반적으로 키 값 쌍의 컬렉션입니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Name
정책 할당의 이름입니다.
형식: | String |
별칭: | PolicyAssignmentName |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-NonComplianceMessage
리소스가 정책을 준수하지 않는 이유를 설명하는 메시지입니다. 구성하려면 NONCOMPLIANCEMESSAGE 속성에 대한 NOTES 섹션을 참조하고 해시 테이블을 만듭니다.
형식: | PSObject[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-NotScope
정책의 제외된 범위입니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Override
정책 속성 값이 재정의됩니다.
형식: | IOverride[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-PolicyDefinition
정책 정의 또는 정책 집합 정의 개체 수락
형식: | PSObject |
별칭: | PolicySetDefinition |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-PolicyParameter
할당된 정책 규칙의 매개 변수 값입니다. 키는 매개 변수 이름입니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-PolicyParameterObject
할당된 정책 규칙의 매개 변수 값입니다. 키는 매개 변수 이름입니다.
형식: | Hashtable |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ResourceSelector
리소스 속성별로 정책을 필터링할 리소스 선택기 목록입니다.
형식: | IResourceSelector[] |
Position: | Named |
Default value: | 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 |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-WhatIf
cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
PSObject[]
String[]
출력
Azure PowerShell