Set-AzPolicyAssignment

정책 할당을 수정합니다.

Syntax

Set-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameterObject <Hashtable>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameter <String>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   -Id <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   -Id <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameterObject <Hashtable>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   -Id <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameter <String>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   -InputObject <PsPolicyAssignment>
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Description

Set-AzPolicyAssignment cmdlet은 정책 할당을 수정합니다. ID 또는 이름 및 범위별로 할당을 지정합니다.

예제

예제 1: 표시 이름 업데이트

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment' -Scope $ResourceGroup.ResourceId
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -DisplayName 'Do not allow VM creation'

첫 번째 명령은 Get-AzResourceGroup cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져옵니다. 명령은 해당 개체를 $ResourceGroup 변수에 저장합니다. 두 번째 명령은 Get-AzPolicyAssignment cmdlet을 사용하여 PolicyAssignment라는 정책 할당을 가져옵니다. 명령은 해당 개체를 $PolicyAssignment 변수에 저장합니다. 최종 명령은 $ResourceGroup ResourceId 속성으로 식별된 리소스 그룹의 정책 할당에 대한 표시 이름을 업데이트합니다.

예제 2: 정책 할당에 시스템 할당 관리 ID 추가

$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -IdentityType 'SystemAssigned' -Location 'westus'

첫 번째 명령은 Get-AzPolicyAssignment cmdlet을 사용하여 현재 구독에서 PolicyAssignment라는 정책 할당을 가져옵니다. 명령은 해당 개체를 $PolicyAssignment 변수에 저장합니다. 최종 명령은 시스템 할당 관리 ID를 정책 할당에 할당합니다.

예제 3: 정책 할당에 사용자 할당 관리 ID 추가

$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
$UserAssignedIdentity = Get-AzUserAssignedIdentity -ResourceGroupName 'ResourceGroup1' -Name 'UserAssignedIdentity1'
 Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -IdentityType 'UserAssigned' -Location 'westus' -IdentityId $UserAssignedIdentity.Id

첫 번째 명령은 Get-AzPolicyAssignment cmdlet을 사용하여 현재 구독에서 PolicyAssignment라는 정책 할당을 가져옵니다. 명령은 해당 개체를 $PolicyAssignment 변수에 저장합니다. 두 번째 명령은 Get-AzUserAssignedIdentity cmdlet을 사용하여 UserAssignedIdentity1이라는 사용자 할당 관리 ID를 가져오고 $UserAssignedIdentity 변수에 저장합니다. 최종 명령은 $UserAssignedIdentity id 속성으로 식별된 사용자 할당 관리 ID를 정책 할당에 할당합니다.

예제 4: 새 정책 매개 변수 개체로 정책 할당 매개 변수 업데이트

$Locations = Get-AzLocation | Where-Object {($_.displayname -like 'france*') -or ($_.displayname -like 'uk*')}
$AllowedLocations = @{'listOfAllowedLocations'=($Locations.location)}
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -PolicyParameterObject $AllowedLocations

첫 번째 및 두 번째 명령은 이름이 "france" 또는 "uk"로 시작하는 모든 Azure 지역을 포함하는 개체를 만듭니다. 두 번째 명령은 해당 개체를 $AllowedLocations 변수에 저장합니다. 세 번째 명령은 'PolicyAssignment'라는 정책 할당을 가져옵니다. 이 명령은 해당 개체를 $PolicyAssignment 변수에 저장합니다. 최종 명령은 PolicyAssignment라는 정책 할당의 매개 변수 값을 업데이트합니다.

예제 5: 정책 매개 변수 파일을 사용하여 정책 할당 매개 변수 업데이트

다음 콘텐츠를 사용하여 로컬 작업 디렉터리에 AllowedLocations.json 파일을 만듭니다.

{
    "listOfAllowedLocations":  {
      "value": [
        "uksouth",
        "ukwest",
        "francecentral",
        "francesouth"
      ]
    }
}

Set-AzPolicyAssignment -Name 'PolicyAssignment' -PolicyParameter .\AllowedLocations.json

이 명령은 로컬 작업 디렉터리의 정책 매개 변수 파일 AllowedLocations.json 사용하여 'PolicyAssignment'라는 정책 할당을 업데이트합니다.

예제 6: enforcementMode 업데이트

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment' -Scope $ResourceGroup.ResourceId
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -EnforcementMode Default

첫 번째 명령은 Get-AzResourceGroup cmdlet을 사용하여 ResourceGroup11이라는 리소스 그룹을 가져옵니다. 명령은 해당 개체를 $ResourceGroup 변수에 저장합니다. 두 번째 명령은 Get-AzPolicyAssignment cmdlet을 사용하여 PolicyAssignment라는 정책 할당을 가져옵니다. 명령은 해당 개체를 $PolicyAssignment 변수에 저장합니다. 최종 명령은 $ResourceGroup ResourceId 속성으로 식별된 리소스 그룹의 정책 할당에 대한 enforcementMode 속성을 업데이트합니다.

예제 7: 비준수 메시지 업데이트

$PolicyAssignment = Get-AzPolicyAssignment -Name 'VirtualMachinePolicy'
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -NonComplianceMessage @{Message="All resources must follow resource naming guidelines."}

첫 번째 명령은 Get-AzPolicyAssignment cmdlet을 사용하여 VirtualMachinePolicy라는 정책 할당을 가져오고 $PolicyAssignment 변수에 저장합니다. 최종 명령은 정책 할당의 비준수 메시지를 정책에 의해 리소스가 거부된 경우 표시되는 새 메시지로 업데이트합니다.

매개 변수

-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

-Id

이 cmdlet에서 수정하는 정책 할당에 대한 정규화된 리소스 ID를 지정합니다.

Type:String
Aliases:ResourceId
Position:Named
Default value:None
Required:True
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

-InputObject

다른 cmdlet에서 출력된 업데이트할 정책 할당 개체입니다.

Type:PsPolicyAssignment
Position:Named
Default value:None
Required:True
Accept pipeline input:True
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

이 cmdlet에서 수정하는 정책 할당의 이름을 지정합니다.

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

-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

-Pre

이 cmdlet은 사용할 버전을 자동으로 결정할 때 시험판 API 버전을 고려한다는 것을 나타냅니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

정책이 적용되는 범위를 지정합니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

입력

String

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]]

PsPolicyAssignment

PsNonComplianceMessage[]

출력

PsPolicyAssignment