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 подписке с двумя сообщениями о несоответствии, которые будут отображаться, если ресурс запрещен политикой.
Параметры
Указывает используемую версию API поставщика ресурсов. Если вы не указываете версию, этот командлет использует последнюю доступную версию.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Создайте и назначьте управляемое удостоверение, назначаемое системой, для этого назначения политики. Удостоверение будет использоваться при выполнении развертываний для политик deployIfNotExists и modify. При назначении удостоверения требуется расположение.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Учетные данные, учетная запись, клиент и подписка, используемые для обмена данными с Azure
| Type: | IAzureContextContainer |
| Aliases: | AzContext, AzureRmContext, AzureCredential |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Описание назначения политики
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Указывает отображаемое имя назначения политики.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Режим принудительного применения для назначения политики. В настоящее время допустимые значения : Default, DoNotEnforce.
| Type: | Nullable<T>[PolicyAssignmentEnforcementMode] |
| Accepted values: | Default, DoNotEnforce |
| Position: | Named |
| Default value: | Default |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Указывает идентификатор назначаемого пользователем управляемого удостоверения для назначения этой политике. Это значение является обязательным, если значение UserAssigned передается параметру -IdentityType.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Указывает тип управляемого удостоверения, назначаемого этому назначению политики. Если задано значение 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 |
Расположение удостоверения ресурса назначения политики. Это необходимо при указании значения -IdentityType.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Метаданные для нового назначения политики. Это может быть путь к имени файла, содержаму метаданные, или метаданным в виде строки.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Указывает имя назначения политики.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Сообщения о несоответствии, описывающие, почему ресурс не соответствует политике.
| Type: | PsNonComplianceMessage[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Не области назначения политики.
| Type: | String[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Задает политику в виде объекта PsPolicyDefinition , содержащего правило политики.
| Type: | PsPolicyDefinition |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Путь к файлу параметров политики или строка параметра политики.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Объект параметра политики.
| Type: | Hashtable |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Объект определения набора политик.
| Type: | PsPolicySetDefinition |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Указывает, что этот командлет учитывает версии API предварительного выпуска при автоматическом определении используемой версии.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Указывает область назначения политики.
Например, чтобы назначить политику группе ресурсов, укажите следующее: имя группы ресурсов идентификатора/resourcegroups/подписки. /subscriptions/
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Входные данные
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]]
Выходные данные
Связанные ссылки
Обратная связь
Отправить и просмотреть отзыв по