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)"

Первая команда получает подписку с именем Subscription01 с помощью командлета Get-AzSubscription и сохраняет ее в переменной $Subscription. Вторая команда получает определение политики с именем VirtualMachinePolicy с помощью командлета Get-AzPolicyDefinition и сохраняет его в переменной $Policy. Последняя команда назначает политику в $Policy на уровне подписки, определенной строкой области подписки.

Пример 2. Назначение политики на уровне группы ресурсов

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId

Первая команда получает группу ресурсов с именем ResourceGroup11 с помощью командлета Get-AzResourceGroup и сохраняет ее в переменной $ResourceGroup. Вторая команда получает определение политики с именем VirtualMachinePolicy с помощью командлета Get-AzPolicyDefinition и сохраняет его в переменной $Policy. Последняя команда назначает политику в $Policy на уровне группы ресурсов, определенной свойством ResourceId $ResourceGroup.

Пример 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

Первая команда получает группу ресурсов с именем ResourceGroup11 с помощью командлета Get-AzResourceGroup. Команда сохраняет этот объект в переменной $ResourceGroup. Вторая команда получает встроенное определение политики для разрешенных расположений с помощью командлета Get-AzPolicyDefinition. Команда сохраняет этот объект в переменной $Policy. Третий и четвертый команды создают объект, содержащий все регионы Azure с "востоком" в имени. Команды хранят этот объект в переменной $AllowedLocations. Последняя команда назначает политику в $Policy на уровне группы ресурсов с помощью объекта параметра политики в $AllowedLocations. Свойство ResourceId $ResourceGroup определяет группу ресурсов.

Пример 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

Первая команда получает группу ресурсов с именем ResourceGroup11 с помощью командлета Get-AzResourceGroup и сохраняет ее в переменной $ResourceGroup. Вторая команда получает встроенное определение политики для разрешенных расположений с помощью командлета Get-AzPolicyDefinition и сохраняет его в переменной $Policy. Последняя команда назначает политику в $Policy в группе ресурсов, определяемой свойством ResourceId $ResourceGroup с помощью файла параметров политики AllowedLocations.json из локального рабочего каталога.

Пример 5. Назначение политики с управляемым удостоверением, назначенным системой

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'SystemAssigned'

Первая команда получает группу ресурсов с именем ResourceGroup11 с помощью командлета Get-AzResourceGroup и сохраняет ее в переменной $ResourceGroup. Вторая команда получает определение политики с именем VirtualMachinePolicy с помощью командлета Get-AzPolicyDefinition и сохраняет его в переменной $Policy. Последняя команда назначает политику в $Policy группе ресурсов. Управляемое удостоверение, назначаемое системой, создается автоматически и назначается назначению политики.

Пример 6. Назначение политики с управляемым удостоверением, назначенным пользователем

$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

Первая команда получает группу ресурсов с именем ResourceGroup11 с помощью командлета Get-AzResourceGroup и сохраняет ее в переменной $ResourceGroup. Вторая команда получает определение политики с именем VirtualMachinePolicy с помощью командлета Get-AzPolicyDefinition и сохраняет его в переменной $Policy. Третья команда получает управляемое удостоверение, назначаемое пользователем с именем UserAssignedIdentity1, с помощью командлета Get-AzUserAssignedIdentity и сохраняет его в переменной $UserAssignedIdentity. Последняя команда назначает политику в $Policy группе ресурсов. Назначенное пользователем управляемое удостоверение, определяемое свойством Id $UserAssignedIdentity, назначается назначению политики путем передачи свойства 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

Первая команда получает подписку с именем Subscription01 с помощью командлета Get-AzSubscription и сохраняет ее в переменной $Subscription. Вторая команда получает определение политики с именем VirtualMachinePolicy с помощью командлета Get-AzPolicyDefinition и сохраняет его в переменной $Policy. Последняя команда назначает политику в $Policy на уровне подписки, определенной строкой области подписки. Назначение задается со значением EnforcementMode DoNotEnforce , т. е. действие политики не применяется во время создания или обновления ресурса.

Пример 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

Первая команда получает определение набора политик с именем VirtualMachinePolicySet с помощью командлета Get-AzPolicySetDefinition и сохраняет его в переменной $PolicySet. Вторая команда создает массив сообщений о несоответствии. Одно сообщение общего назначения для всего назначения и одно сообщение, относяемое к политике ограничений SKU в определении назначенного набора политик. Последняя команда назначает определение набора политик в $PolicySet подписке с двумя сообщениями о несоответствии, которые будут отображаться, если ресурс запрещен политикой.

Параметры

-ApiVersion

Указывает используемую версию API поставщика ресурсов. Если вы не указываете версию, этот командлет использует последнюю доступную версию.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-AssignIdentity

Создайте и назначьте управляемое удостоверение, назначаемое системой, для этого назначения политики. Удостоверение будет использоваться при выполнении развертываний для политик deployIfNotExists и modify. При назначении удостоверения требуется расположение.

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

Учетные данные, учетная запись, клиент и подписка, используемые для обмена данными с Azure

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Description

Описание назначения политики

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

Указывает отображаемое имя назначения политики.

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

Режим принудительного применения для назначения политики. В настоящее время допустимые значения : Default, DoNotEnforce.

Type:Nullable<T>[PolicyAssignmentEnforcementMode]
Accepted values:Default, DoNotEnforce
Position:Named
Default value:Default
Accept pipeline input:True
Accept wildcard characters:False
-IdentityId

Указывает идентификатор назначаемого пользователем управляемого удостоверения для назначения этой политике. Это значение является обязательным, если значение UserAssigned передается параметру -IdentityType.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-IdentityType

Указывает тип управляемого удостоверения, назначаемого этому назначению политики. Если задано значение SystemAssigned, создается управляемое удостоверение, назначаемое системой, и назначается этому назначению политики. Если задано значение UserAssigned, назначенное пользователем удостоверение, передаваемое через идентификатор параметру -IdentityId, назначается этому назначению политики. Удостоверение будет использоваться при выполнении развертываний для политик deployIfNotExists и modify. При назначении удостоверения требуется расположение. Разрешения должны быть предоставлены удостоверению с помощью New-AzRoleAssignment после создания назначенного системой удостоверения. Параметр IdentityType будет иметь приоритет, если используются как AssignIdentity, так и параметр IdentityType.

Type:Nullable<T>[ManagedIdentityType]
Accepted values:SystemAssigned, UserAssigned, None
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Location

Расположение удостоверения ресурса назначения политики. Это необходимо при указании значения -IdentityType.

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

Метаданные для нового назначения политики. Это может быть путь к имени файла, содержаму метаданные, или метаданным в виде строки.

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

Указывает имя назначения политики.

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

Сообщения о несоответствии, описывающие, почему ресурс не соответствует политике.

Type:PsNonComplianceMessage[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-NotScope

Не области назначения политики.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-PolicyDefinition

Задает политику в виде объекта PsPolicyDefinition , содержащего правило политики.

Type:PsPolicyDefinition
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-PolicyParameter

Путь к файлу параметров политики или строка параметра политики.

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

Объект параметра политики.

Type:Hashtable
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-PolicySetDefinition

Объект определения набора политик.

Type:PsPolicySetDefinition
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Pre

Указывает, что этот командлет учитывает версии API предварительного выпуска при автоматическом определении используемой версии.

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

Указывает область назначения политики. Например, чтобы назначить политику группе ресурсов, укажите следующее: имя группы ресурсов идентификатора/resourcegroups/подписки. /subscriptions/

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

Входные данные

String

String[]

PsPolicyDefinition

PsPolicySetDefinition

Nullable<T>[[Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy.PolicyAssignmentEnforcementMode, Microsoft.Azure.PowerShell.Cmdlets.ResourceManager, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null]]

PsNonComplianceMessage[]

Выходные данные

PsPolicyAssignment