New-AzPolicyAssignment
Crea o actualiza una asignación de directiva.
Sintaxis
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
El cmdlet New-AzPolicyAssignment crea o actualiza una asignación de directiva con el ámbito y el nombre especificados. Las asignaciones de directiva se aplican a todos los recursos contenidos dentro de su ámbito. Por ejemplo, al asignar una directiva en el ámbito del grupo de recursos, esa directiva se aplica a todos los recursos del grupo.
Ejemplos
Ejemplo 1: Asignación de directivas en el nivel de suscripción
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)"
El primer comando obtiene una suscripción denominada Subscription01 mediante el cmdlet Get-AzSubscription y la almacena en la variable $Subscription. El segundo comando obtiene la definición de directiva denominada VirtualMachinePolicy mediante el cmdlet Get-AzPolicyDefinition y la almacena en la variable $Policy. El comando final asigna la directiva en $Policy en el nivel de la suscripción identificada por la cadena de ámbito de la suscripción.
Ejemplo 2: Asignación de directivas en el nivel de grupo de recursos
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId
El primer comando obtiene un grupo de recursos denominado ResourceGroup11 mediante el cmdlet Get-AzResourceGroup y lo almacena en la variable $ResourceGroup. El segundo comando obtiene la definición de directiva denominada VirtualMachinePolicy mediante el cmdlet Get-AzPolicyDefinition y la almacena en la variable $Policy. El comando final asigna la directiva en $Policy en el nivel del grupo de recursos identificado por la propiedad ResourceId de $ResourceGroup.
Ejemplo 3: Asignación de directivas en el nivel de grupo de recursos con el objeto de parámetro de directiva
$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
El primer comando obtiene un grupo de recursos denominado ResourceGroup11 mediante el cmdlet Get-AzResourceGroup. El comando almacena ese objeto en la variable $ResourceGroup. El segundo comando obtiene la definición de directiva integrada para las ubicaciones permitidas mediante el cmdlet Get-AzPolicyDefinition. El comando almacena ese objeto en la variable $Policy. Los comandos tercero y cuarto crean un objeto que contiene todas las regiones de Azure con "east" en el nombre. Los comandos almacenan ese objeto en la variable $AllowedLocations. El comando final asigna la directiva en $Policy en el nivel de un grupo de recursos mediante el objeto de parámetro de directiva en $AllowedLocations. La propiedad ResourceId de $ResourceGroup identifica el grupo de recursos.
Ejemplo 4: Asignación de directivas en el nivel de grupo de recursos con el archivo de parámetros de directiva
'{
"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
El primer comando crea un archivo de parámetros denominado AllowedLocations.json en el directorio de trabajo local. El segundo comando obtiene un grupo de recursos denominado ResourceGroup11 mediante el cmdlet Get-AzResourceGroup y lo almacena en la variable $ResourceGroup. El tercer comando obtiene la definición de directiva integrada para las ubicaciones permitidas mediante el cmdlet Get-AzPolicyDefinition y la almacena en la variable $Policy. El comando final asigna la directiva en $Policy en el grupo de recursos identificado por la propiedad ResourceId de $ResourceGroup mediante el archivo de parámetros de directiva AllowedLocations.json desde el directorio de trabajo local.
Ejemplo 5: Asignación de directivas con una identidad administrada asignada por el sistema
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'SystemAssigned'
El primer comando obtiene un grupo de recursos denominado ResourceGroup11 mediante el cmdlet Get-AzResourceGroup y lo almacena en la variable $ResourceGroup. El segundo comando obtiene la definición de directiva denominada VirtualMachinePolicy mediante el cmdlet Get-AzPolicyDefinition y la almacena en la variable $Policy. El comando final asigna la directiva en $Policy al grupo de recursos. Se crea automáticamente una identidad administrada asignada por el sistema y se asigna a la asignación de directiva.
Ejemplo 6: asignación de directivas con una identidad administrada asignada por el usuario
$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
El primer comando obtiene un grupo de recursos denominado ResourceGroup11 mediante el cmdlet Get-AzResourceGroup y lo almacena en la variable $ResourceGroup. El segundo comando obtiene la definición de directiva denominada VirtualMachinePolicy mediante el cmdlet Get-AzPolicyDefinition y la almacena en la variable $Policy. El tercer comando obtiene la identidad administrada asignada por el usuario denominada UserAssignedIdentity1 mediante el cmdlet Get-AzUserAssignedIdentity y la almacena en la variable $UserAssignedIdentity. El comando final asigna la directiva en $Policy al grupo de recursos. La identidad administrada asignada por el usuario identificada por la propiedad Id de $UserAssignedIdentity se asigna a la asignación de directiva pasando la propiedad Id* al parámetro IdentityId.
Ejemplo 7: Asignación de directivas con una propiedad de modo de cumplimiento
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)" -EnforcementMode DoNotEnforce
El primer comando obtiene una suscripción denominada Subscription01 mediante el cmdlet Get-AzSubscription y la almacena en la variable $Subscription. El segundo comando obtiene la definición de directiva denominada VirtualMachinePolicy mediante el cmdlet Get-AzPolicyDefinition y la almacena en la variable $Policy. El comando final asigna la directiva en $Policy en el nivel de la suscripción identificada por la cadena de ámbito de la suscripción.
La asignación se establece con un valor EnforcementMode de DoNotEnforce, es decir, el efecto de directiva no se aplica durante la creación o actualización de recursos.
Ejemplo 8: Asignación de directivas con mensajes de no cumplimiento
$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
El primer comando obtiene la definición del conjunto de directivas denominada VirtualMachinePolicySet mediante el cmdlet Get-AzPolicySetDefinition y la almacena en la variable $PolicySet. El segundo comando crea una matriz de mensajes de no cumplimiento. Un mensaje de uso general para toda la asignación y un mensaje específico de una directiva de restricción de SKU dentro de la definición del conjunto de directivas asignado. El comando final asigna la definición del conjunto de directivas en $PolicySet a la suscripción con dos mensajes de no cumplimiento que se mostrarán si una directiva deniega un recurso.
Ejemplo 9: Asignación de directivas con selector de recursos
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$ResourceSelector = @{Name = "MyLocationSelector"; Selector = @(@{Kind = "resourceLocation"; In = @("eastus", "eastus2")})}
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -ResourceSelector $ResourceSelector
El primer comando obtiene la definición de directiva denominada VirtualMachinePolicy mediante el cmdlet Get-AzPolicyDefinition y la almacena en la variable $Policy. El segundo comando crea un objeto selector de recursos que se usará para especificar la asignación solo debe aplicarse a los recursos ubicados en Este de EE. UU. o Este de EE. UU. 2 y los almacena en la variable $ResourceSelector. El comando final asigna la definición de directiva en $Policy a la suscripción con el selector de recursos especificado por $ResourceSelector.
Ejemplo 10: Asignación de directiva con invalidación
$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
El primer comando obtiene la definición de directiva denominada VirtualMachinePolicy mediante el cmdlet Get-AzPolicyDefinition y la almacena en la variable $Policy. El segundo comando crea un selector de ubicación que especifica ubicaciones este de EE. UU. o Este de EE. UU. 2 y las almacena en la variable $Selector. El tercer comando crea un objeto override que se usará para especificar que la definición asignada debe tener un efecto Disabled en las ubicaciones identificadas por el objeto $Selector y los almacena en la variable $Override. El comando final asigna la definición de directiva en $Policy a la suscripción con la invalidación especificada por $Override.
Ejemplo 11: [Backcompat] Asignación de directiva en el nivel de grupo de recursos con el objeto de parámetro de directiva
$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
El primer comando obtiene un grupo de recursos denominado ResourceGroup11 mediante el cmdlet Get-AzResourceGroup. El comando almacena ese objeto en la variable $ResourceGroup. El segundo comando obtiene la definición de directiva integrada para las ubicaciones permitidas mediante el cmdlet Get-AzPolicyDefinition. El comando almacena ese objeto en la variable $Policy. Los comandos tercero y cuarto crean un objeto que contiene todas las regiones de Azure con "east" en el nombre. Los comandos almacenan ese objeto en la variable $AllowedLocations. El comando final asigna la directiva en $Policy en el nivel de un grupo de recursos mediante el objeto de parámetro de directiva en $AllowedLocations. La propiedad ResourceId de $ResourceGroup identifica el grupo de recursos.
Ejemplo 12: [Backcompat] Asignación de directiva en el nivel de grupo de recursos con el archivo de parámetros de directiva
'{
"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
El primer comando crea un archivo de parámetros denominado AllowedLocations.json en el directorio de trabajo local. El segundo comando obtiene un grupo de recursos denominado ResourceGroup11 mediante el cmdlet Get-AzResourceGroup y lo almacena en la variable $ResourceGroup. El tercer comando obtiene la definición de directiva integrada para las ubicaciones permitidas mediante el cmdlet Get-AzPolicyDefinition y la almacena en la variable $Policy. El comando final asigna la directiva en $Policy en el grupo de recursos identificado por la propiedad ResourceId de $ResourceGroup mediante el archivo de parámetros de directiva AllowedLocations.json desde el directorio de trabajo local.
Parámetros
-BackwardCompatible
Hace que el cmdlet devuelva artefactos mediante la colocación de propiedades específicas de la directiva en un objeto contenedor de propiedades.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-DefaultProfile
El parámetro DefaultProfile no es funcional. Use el parámetro SubscriptionId cuando esté disponible si ejecuta el cmdlet en otra suscripción.
Tipo: | PSObject |
Alias: | AzureRMContext, AzureCredential |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-DefinitionVersion
Indicar la versión de la definición de directiva o la definición del conjunto de directivas
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Description
Este mensaje formará parte de la respuesta en caso de infracción de directiva.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-DisplayName
Nombre para mostrar de la asignación de directiva.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-EnforcementMode
Modo de cumplimiento de asignación de directivas. Los valores posibles son Default y DoNotEnforce.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-IdentityId
Identidad de usuario asociada a la directiva. Las referencias de clave de diccionario de identidad de usuario serán identificadores de recursos de ARM con el formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-IdentityType
Tipo de identidad. Este es el único campo obligatorio al agregar una identidad asignada por el sistema o el usuario a un recurso.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Location
Ubicación de la asignación de directiva. Solo es necesario al usar la identidad administrada.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Metadata
Metadatos de asignación de directiva. Los metadatos son un objeto terminado abierto y normalmente es una colección de pares clave-valor.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Name
Nombre de la asignación de directiva.
Tipo: | String |
Alias: | PolicyAssignmentName |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-NonComplianceMessage
Los mensajes que describen por qué un recurso no es compatible con la directiva. Para construir, vea la sección NOTES para las propiedades NONCOMPLIANCEMESSAGE y crear una tabla hash.
Tipo: | PSObject[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-NotScope
Ámbitos excluidos de la directiva.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Override
Invalidación del valor de la propiedad de directiva.
Tipo: | IOverride[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PolicyDefinition
Aceptar la definición de directiva o el objeto de definición del conjunto de directivas
Tipo: | PSObject |
Alias: | PolicySetDefinition |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-PolicyParameter
Valores de parámetro para la regla de directiva asignada. Las claves son los nombres de parámetro.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PolicyParameterObject
Valores de parámetro para la regla de directiva asignada. Las claves son los nombres de parámetro.
Tipo: | Hashtable |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ResourceSelector
Lista del selector de recursos para filtrar las directivas por propiedades de recursos.
Tipo: | IResourceSelector[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Scope
Ámbito de la asignación de directiva. Los ámbitos válidos son: grupo de administración (formato: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), suscripción (formato: '/subscriptions/{subscriptionId}'), grupo de recursos (formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', o recurso (formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.
Tipo: | SwitchParameter |
Alias: | wi |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
PSObject[]
String[]