New-AzPolicyAssignment
Crea una asignación de directiva.
Syntax
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>]
Description
El cmdlet New-AzPolicyAssignment crea una asignación de directiva. Especifique una directiva y un ámbito.
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 {$_.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 4: Asignación de directivas en el nivel de grupo de recursos con el archivo de parámetros de directiva
Cree un archivo denominado AllowedLocations.json en el directorio de trabajo local con el siguiente contenido.
<#{
"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
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 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.
Parámetros
-ApiVersion
Especifica la versión de la API del proveedor de recursos que se va a usar. Si no especifica una versión, este cmdlet usa la versión más reciente disponible.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AssignIdentity
Genere y asigne una identidad administrada asignada por el sistema para esta asignación de directiva. La identidad se usará al ejecutar implementaciones para las directivas "deployIfNotExists" y "modify". La ubicación es necesaria al asignar una identidad.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultProfile
Las credenciales, la cuenta, el inquilino y la suscripción que se usan para la comunicación con Azure
Type: | IAzureContextContainer |
Aliases: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Descripción de la asignación de directivas
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DisplayName
Especifica un nombre para mostrar para la asignación de directiva.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EnforcementMode
Modo de cumplimiento para la asignación de directivas. Actualmente, los valores válidos son 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 |
-IdentityId
Especifica el identificador de la identidad administrada asignada por el usuario que se va a asignar a esta asignación de directiva. Este valor es necesario si el valor "UserAssigned" se pasa al parámetro -IdentityType.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IdentityType
Especifica el tipo de identidad administrada que se va a asignar a esta asignación de directiva. Si se proporciona el valor "SystemAssigned", se genera una identidad administrada asignada por el sistema y se asigna a esta asignación de directiva. Si se proporciona el valor "UserAssigned", la identidad asignada por el usuario que se pasa a través de su identificador al parámetro -IdentityId se asigna a esta asignación de directiva. La identidad se usará al ejecutar implementaciones para las directivas "deployIfNotExists" y "modify". La ubicación es necesaria al asignar una identidad. Los permisos se deben conceder a la identidad mediante New-AzRoleAssignment después de crear la identidad asignada por el sistema. El parámetro IdentityType tendrá prioridad si se usan el parámetro AssignIdentity y el parámetro 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 |
-Location
Ubicación de la identidad de recurso de la asignación de directiva. Esto es necesario cuando se proporciona el valor -IdentityType.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Metadata
Metadatos de la nueva asignación de directiva. Puede ser una ruta de acceso a un nombre de archivo que contenga los metadatos o los metadatos como una cadena.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Especifica un nombre para la asignación de directiva.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NonComplianceMessage
Los mensajes de no cumplimiento que describen por qué un recurso no es compatible con la directiva.
Type: | PsNonComplianceMessage[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NotScope
Los ámbitos no para la asignación de directivas.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyDefinition
Especifica una directiva, como un objeto PsPolicyDefinition que contiene la regla de directiva.
Type: | PsPolicyDefinition |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyParameter
Ruta de acceso del archivo de parámetros de directiva o cadena de parámetro de directiva.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyParameterObject
Objeto de parámetro de directiva.
Type: | Hashtable |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PolicySetDefinition
Objeto de definición del conjunto de directivas.
Type: | PsPolicySetDefinition |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Pre
Indica que este cmdlet considera las versiones de API de versión preliminar cuando determina automáticamente qué versión se va a usar.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Especifica el ámbito en el que se va a asignar la directiva.
Por ejemplo, para asignar una directiva a un grupo de recursos, especifique lo siguiente: nombre del grupo de recursos del identificador/resourcegroups/
de suscripción. /subscriptions/
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Entradas
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]]
Salidas
Vínculos relacionados
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de