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>]
Описание
Командлет 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 {$_.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. Назначение политики на уровне группы ресурсов с файлом параметров политики
'{
"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 в локальном рабочем каталоге. Вторая команда получает группу ресурсов с именем 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 подписке с двумя сообщениями о несоответствии, которые будут отображаться, если ресурс запрещен политикой.
Пример 9. Назначение политики с селектором ресурсов
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$ResourceSelector = @{Name = "MyLocationSelector"; Selector = @(@{Kind = "resourceLocation"; In = @("eastus", "eastus2")})}
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -ResourceSelector $ResourceSelector
Первая команда получает определение политики с именем VirtualMachinePolicy с помощью командлета Get-AzPolicyDefinition и сохраняет его в переменной $Policy. Вторая команда создает объект селектора ресурсов, который будет использоваться для указания назначения, должен применяться только к ресурсам, расположенным в восточной части США или восточной части США 2, и сохраняет его в переменной $ResourceSelector. Последняя команда назначает определение политики в $Policy подписке с селектором ресурсов, указанным $ResourceSelector.
Пример 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
Первая команда получает определение политики с именем VirtualMachinePolicy с помощью командлета Get-AzPolicyDefinition и сохраняет его в переменной $Policy. Вторая команда создает селектор расположения, указывающий расположения восточной части США или восточной части США 2 и сохраняет его в переменной $Selector. Третья команда создает объект переопределения, который будет использоваться для указания того, что назначенное определение должно иметь отключенный эффект в расположениях, определенных объектом $Selector, и сохраняет его в переменной $Override. Последняя команда назначает определение политики в $Policy подписке с переопределением, указанным $Override.
Пример 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
Первая команда получает группу ресурсов с именем ResourceGroup11 с помощью командлета Get-AzResourceGroup. Команда сохраняет этот объект в переменной $ResourceGroup. Вторая команда получает встроенное определение политики для разрешенных расположений с помощью командлета Get-AzPolicyDefinition. Команда сохраняет этот объект в переменной $Policy. Третий и четвертый команды создают объект, содержащий все регионы Azure с "востоком" в имени. Команды хранят этот объект в переменной $AllowedLocations. Последняя команда назначает политику в $Policy на уровне группы ресурсов с помощью объекта параметра политики в $AllowedLocations. Свойство ResourceId $ResourceGroup определяет группу ресурсов.
Пример 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 в локальном рабочем каталоге. Вторая команда получает группу ресурсов с именем ResourceGroup11 с помощью командлета Get-AzResourceGroup и сохраняет ее в переменной $ResourceGroup. Третья команда получает встроенное определение политики для разрешенных расположений с помощью командлета Get-AzPolicyDefinition и сохраняет его в переменной $Policy. Последняя команда назначает политику в $Policy в группе ресурсов, определяемой свойством ResourceId $ResourceGroup с помощью файла параметров политики AllowedLocations.json из локального рабочего каталога.
Параметры
-BackwardCompatible
Позволяет командлету возвращать артефакты с помощью устаревшего формата размещения свойств, относящихся к политике, в объекте контейнера свойств.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Confirm
Запрос подтверждения перед выполнением командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-DefaultProfile
Параметр DefaultProfile не работает. Используйте параметр SubscriptionId, если он доступен при выполнении командлета в другой подписке.
Тип: | PSObject |
Aliases: | 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
Удостоверение пользователя, связанное с политикой. Ссылки на ключ словаря удостоверений пользователя будут идентификаторами ресурсов ARM в форме: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-IdentityType
Тип удостоверения. Это единственное обязательное поле при добавлении удостоверения, назначенного системой или пользователем, в ресурс.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Location
Расположение назначения политики. Требуется только при использовании управляемого удостоверения.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Metadata
Метаданные назначения политики. Метаданные — это открытый завершенный объект, который обычно представляет собой коллекцию пар значений ключей.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Name
Имя назначения политики.
Тип: | String |
Aliases: | PolicyAssignmentName |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-NonComplianceMessage
Сообщения, описывающие, почему ресурс не соответствует политике. Сведения о создании см. в разделе NOTES для свойств NONCOMPLIANCEMESSAGE и создания хэш-таблицы.
Тип: | 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 |
Aliases: | 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
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
PSObject[]
String[]
Выходные данные
Azure PowerShell