Set-AzPolicyAssignment

Modifica una asignación de directiva.

Syntax

Set-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameterObject <Hashtable>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameter <String>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   -Id <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   -Id <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameterObject <Hashtable>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   -Id <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameter <String>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   -InputObject <PsPolicyAssignment>
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Description

El cmdlet Set-AzPolicyAssignment modifica una asignación de directiva. Especifique una asignación por identificador o por nombre y ámbito.

Ejemplos

Ejemplo 1: Actualización del nombre para mostrar

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment' -Scope $ResourceGroup.ResourceId
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -DisplayName 'Do not allow VM creation'

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 asignación de directiva denominada PolicyAssignment mediante el cmdlet Get-AzPolicyAssignment. El comando almacena ese objeto en la variable $PolicyAssignment. El comando final actualiza el nombre para mostrar en la asignación de directiva en el grupo de recursos identificado por la propiedad ResourceId de $ResourceGroup.

Ejemplo 2: Adición de una identidad administrada asignada por el sistema a la asignación de directivas

$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -IdentityType 'SystemAssigned' -Location 'westus'

El primer comando obtiene la asignación de directiva denominada PolicyAssignment de la suscripción actual mediante el cmdlet Get-AzPolicyAssignment. El comando almacena ese objeto en la variable $PolicyAssignment. El comando final asigna una identidad administrada asignada por el sistema a la asignación de directiva.

Ejemplo 3: Adición de una identidad administrada asignada por el usuario a la asignación de directiva

$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
$UserAssignedIdentity = Get-AzUserAssignedIdentity -ResourceGroupName 'ResourceGroup1' -Name 'UserAssignedIdentity1'
 Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -IdentityType 'UserAssigned' -Location 'westus' -IdentityId $UserAssignedIdentity.Id

El primer comando obtiene la asignación de directiva denominada PolicyAssignment de la suscripción actual mediante el cmdlet Get-AzPolicyAssignment. El comando almacena ese objeto en la variable $PolicyAssignment. El segundo 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 identidad administrada asignada por el usuario identificada por la propiedad Id de $UserAssignedIdentity a la asignación de directiva.

Ejemplo 4: Actualización de parámetros de asignación de directivas con el nuevo objeto de parámetro de directiva

$Locations = Get-AzLocation | Where-Object {($_.displayname -like 'france*') -or ($_.displayname -like 'uk*')}
$AllowedLocations = @{'listOfAllowedLocations'=($Locations.location)}
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -PolicyParameterObject $AllowedLocations

Los comandos primero y segundo crean un objeto que contiene todas las regiones de Azure cuyos nombres comienzan por "france" o "uk". El segundo comando almacena ese objeto en la variable $AllowedLocations. El tercer comando obtiene la asignación de directiva denominada "PolicyAssignment" El comando almacena ese objeto en la variable $PolicyAssignment. El comando final actualiza los valores de parámetro en la asignación de directiva denominada PolicyAssignment.

Ejemplo 5: Actualización de parámetros de asignación de directivas 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": [
        "uksouth",
        "ukwest",
        "francecentral",
        "francesouth"
      ]
    }
}

Set-AzPolicyAssignment -Name 'PolicyAssignment' -PolicyParameter .\AllowedLocations.json

El comando actualiza la asignación de directiva denominada "PolicyAssignment" mediante el archivo de parámetros de directiva AllowedLocations.json desde el directorio de trabajo local.

Ejemplo 6: Actualizar un enforcementMode

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment' -Scope $ResourceGroup.ResourceId
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -EnforcementMode Default

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 asignación de directiva denominada PolicyAssignment mediante el cmdlet Get-AzPolicyAssignment. El comando almacena ese objeto en la variable $PolicyAssignment. El comando final actualiza la propiedad enforcementMode en la asignación de directiva en el grupo de recursos identificado por la propiedad ResourceId de $ResourceGroup.

Ejemplo 7: Actualización de mensajes de no cumplimiento

$PolicyAssignment = Get-AzPolicyAssignment -Name 'VirtualMachinePolicy'
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -NonComplianceMessage @{Message="All resources must follow resource naming guidelines."}

El primer comando obtiene la asignación de directiva denominada VirtualMachinePolicy mediante el cmdlet Get-AzPolicyAssignment y la almacena en la variable $PolicyAssignment. El comando final actualiza los mensajes de no cumplimiento en la asignación de directiva con un nuevo mensaje que se mostrará si la 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 nuevo 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

-Id

Especifica el identificador de recurso completo para la asignación de directiva que modifica este cmdlet.

Type:String
Aliases:ResourceId
Position:Named
Default value:None
Required:True
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

-InputObject

Objeto de asignación de directiva para actualizar el resultado de otro cmdlet.

Type:PsPolicyAssignment
Position:Named
Default value:None
Required:True
Accept pipeline input:True
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 actualizados para la 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 el nombre de la asignación de directiva que modifica este cmdlet.

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

La asignación de directiva no tiene ámbitos.

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

-PolicyParameter

La nueva ruta de acceso de archivo o cadena de parámetros de directiva para la asignación de directiva.

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

-PolicyParameterObject

Nuevo objeto de parámetros de directiva para la asignación de directiva.

Type:Hashtable
Position:Named
Default value:None
Required:True
Accept pipeline input:False
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 aplica la directiva.

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

Entradas

String

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]]

PsPolicyAssignment

PsNonComplianceMessage[]

Salidas

PsPolicyAssignment