Determinación de las causas de incumplimiento

Cuando se determina que un recurso de Azure no cumple con una regla de directiva, resulta útil entender con qué parte de la regla no es compatible el recurso. También resulta útil para comprender cuál es el cambio que modificó un recurso compatible anteriormente y lo transformó en no compatible. Hay dos maneras de obtener esta información:

Detalles de cumplimiento

Cuando un recurso no es compatible, los detalles de cumplimiento para ese recurso estarán disponibles en la página Cumplimiento de directiva. El panel de detalles de cumplimiento incluye la siguiente información:

  • Detalles de recursos como el nombre, el tipo, la ubicación y el identificador del recurso.
  • Estado de compatibilidad y marca de tiempo de la última evaluación para la asignación de la directiva actual.
  • Una lista de razones por las que el recurso no es compatible.

Importante

Puesto que los detalles de cumplimiento para un recurso no compatible muestran el valor correcto de las propiedades en ese recurso, el usuario debe realizar la operación de lectura en el tipo de recurso. Por ejemplo, si el recurso no compatible es Microsoft.Compute/virtualMachines, el usuario debe realizar la operación Microsoft.Compute/virtualMachines/read. Si el usuario no realiza la operación necesaria, se muestra un error de acceso.

Para ver los detalles de cumplimiento, siga estos pasos:

  1. Inicie el servicio Azure Policy en Azure Portal. Para ello, seleccione Todos los servicios y, a continuación, busque y seleccione Directiva.

  2. En la página Información general o Cumplimiento, seleccione una directiva que sea con un estado de compatibilidad que sea No compatible.

  3. En la pestaña Compatibilidad de recursos de Cumplimiento de directiva, seleccione y mantenga (o haga clic con el botón derecho), o seleccione los puntos suspensivos de un recurso en un estado de compatibilidad que sea No compatible. A continuación, seleccione Ver detalles de cumplimiento.

    Captura de pantalla del vínculo "Ver detalles de cumplimiento" en la pestaña Cumplimiento de recursos.

  4. La página Detalles de cumplimiento muestra información de la última evaluación del recurso en la asignación de directiva actual. En este ejemplo, el campo Microsoft.Sql/servers/version tiene que ser 12.0 y se espera que la definición de política sea 14.0. Si el recurso no es compatible por varias razones, estas se muestran en este panel.

    Captura de pantalla del panel Detalles de cumplimiento y el motivos por el que no hay cumplimiento es que el valor actual es doce y el valor de destino es catorce.

    Para una definición de directiva auditIfNotExists o deployIfNotExists, los detalles incluyen la propiedad details.type y cualquier propiedad opcional. Para obtener una lista, consulte auditIfNotExists propiedades y deployIfNotExists propiedades. Último recurso evaluado es un recurso relacionado de la sección de detalles de la definición.

    Definición deployIfNotExists parcial de ejemplo:

    {
        "if": {
            "field": "type",
            "equals": "[parameters('resourceType')]"
        },
        "then": {
            "effect": "DeployIfNotExists",
            "details": {
                "type": "Microsoft.Insights/metricAlerts",
                "existenceCondition": {
                    "field": "name",
                    "equals": "[concat(parameters('alertNamePrefix'), '-', resourcegroup().name, '-', field('name'))]"
                },
                "existenceScope": "subscription",
                "deployment": {
                    ...
                }
            }
        }
    }
    

    Captura de pantalla del panel Detalles de cumplimiento para ifNotExists, incluido el recuento de recursos evaluados.

Nota

Para proteger los datos, cuando un valor de propiedad es secreto, el valor actual muestra asteriscos.

Estos detalles explican por qué un recurso no es compatible actualmente, pero no muestran cuándo se realizó el cambio en el recurso que provocó que se transformara en no compatible. Para obtener esa información, consulte Historial de cambios (versión preliminar) a continuación.

Razones de cumplimiento

Los modos de Resource Manager y los modos del proveedor de recursos tienen razones diferentes para el no cumplimiento.

Razones de cumplimiento del modo general de Resource Manager

La siguiente tabla asigna cada razón del modo de Resource Manager posible a la condición responsable en la definición de la directiva:

Motivo Condición
El valor actual debe contener el valor de destino como una clave. containsKey o no notContainsKey
El valor actual debe contener el valor de destino. contains o no notContains
El valor actual debe ser igual al valor de destino. equals o no notEquals
El valor actual debe ser inferior al valor de destino. less o no greaterOrEquals
El valor actual debe ser superior o igual al valor de destino. greaterOrEquals o no less
El valor actual debe ser superior al valor de destino. greater o no lessOrEquals
El valor actual debe ser inferior o igual al valor de destino. lessOrEquals o no greater
El valor actual debe existir. exists
El valor actual debe estar en el valor de destino. in o no notIn
El valor actual debe ser como el valor de destino. like o no notLike
El valor actual debe coincidir con distinción de mayúsculas y minúsculas con el valor de destino. match o no notMatch
El valor actual debe coincidir sin distinción de mayúsculas y minúsculas con el valor de destino. matchInsensitively o no notMatchInsensitively
El valor actual no debe contener el valor de destino como clave. notContainsKey o no containsKey
El valor actual no debe contener el valor de destino. notContains o no contains
El valor actual no debe ser igual que el valor de destino. notEquals o no equals
El valor actual no debe existir. no exists
El valor actual no debe estar en el valor de destino. notIn o no in
El valor actual no debe ser como el valor de destino. notLike o no like
El valor actual no debe coincidir con distinción de mayúsculas y minúsculas con el valor de destino. notMatch o no match
El valor actual no debe coincidir sin distinción de mayúsculas y minúsculas con el valor de destino. notMatchInsensitively o no matchInsensitively
Ninguno de los recursos relacionados coincide con los detalles de vigencia de la definición de directiva. Un recurso del tipo definido en then.details.type y relacionado con el recurso definido en la porción if de la regla de directiva no existe.

Razones de cumplimiento del modo del proveedor de recursos de AKS

En la tabla siguiente se asigna cada razón del Microsoft.Kubernetes.Data modo del proveedor de recursos al estado responsable de la plantilla de restricción en la definición de directiva:

Motivo Descripción de la razón de la plantilla de restricción
Constraint/TemplateCreateFailed No se pudo crear el recurso para una definición de directiva con una restricción o plantilla que no coincide con una restricción o plantilla existentes en el clúster por nombre de metadatos de recursos.
Constraint/TemplateUpdateFailed No se pudo actualizar la restricción o plantilla para una definición de directiva con una restricción o plantilla que coincide con una restricción o plantilla existentes en el clúster por nombre de metadatos de recursos.
Constraint/TemplateInstallFailed No se pudo crear la restricción o plantilla y no se pudo instalar en el clúster para la operación de creación o actualización.
ConstraintTemplateConflicts La plantilla tiene un conflicto con una o varias definiciones de directiva que usan el mismo nombre de plantilla con otro origen.
ConstraintStatusStale Hay un estado "Auditoría" existente, pero Gatekeeper no ha realizado ninguna auditoría en la última hora.
ConstraintNotProcessed No hay ningún estado y Gatekeeper ha realizado una auditoría en la última hora.
InvalidConstraint/Template El servidor de API ha rechazado el recurso debido a un YAML incorrecto. Este motivo también puede deberse a una discrepancia en el tipo de parámetro (ejemplo: se proporciona una cadena en lugar de un entero).

Nota

En el caso de las asignaciones de directivas existentes y las plantillas de restricción que ya están en el clúster, si se produce un error en esa restricción o plantilla, el clúster se protege manteniendo la restricción o plantilla existentes. Se notifica el no cumplimiento del clúster hasta que el error se resuelva en la asignación de directivas o el complemento se recupere por sí mismo. Para más información sobre cómo controlar conflictos, consulte Conflictos de plantilla de restricciones.

Detalles de componente de los modos de proveedor de recursos

En las asignaciones con un modo de proveedor de recursos, seleccione el recurso No compatible para abrir una vista más profunda. En la pestaña Compatibilidad de componentes hay información adicional específica del modo de proveedor de recursos en la directiva asignada que muestra No compatible, Componente e Id. de componente.

Captura de pantalla de la pestaña Compatibilidad de componentes y detalles de cumplimiento de una asignación de modo de proveedor de recursos.

Detalles de cumplimiento de la configuración de invitado

En las definiciones de directiva de la categoría Configuración de invitados, podría haber varias configuraciones evaluadas dentro de la máquina virtual y es necesario ver los detalles por configuración. Por ejemplo, si va a realizar una auditoría de una lista de opciones de seguridad y solo una de ellas tiene el estado No conforme, debe saber qué directivas de contraseñas específicas no cumplen los requisitos y por qué.

También es posible que no disponga de acceso para iniciar sesión en la máquina virtual directamente, pero tenga que comunicar el motivo por el que la máquina virtual es No compatible.

Azure portal

Para empezar, siga los mismos pasos de la sección anterior para ver los detalles de cumplimiento de directivas.

En la vista del panel Detalles de cumplimiento, seleccione el vínculo Último recurso evaluado.

Captura de pantalla de la visualización de los detalles de cumplimiento de la definición de auditIfNotExists.

La página Asignación de invitado muestra todos los detalles de cumplimiento disponibles. Cada fila de la vista representa una evaluación que se realizó dentro de la máquina. En la columna Motivo, se muestra una frase que describe el motivo por el que Asignación de invitado es No compatible. Por ejemplo, si audita directivas de contraseñas, la columna Motivo mostraría un texto que incluye el valor actual de cada configuración.

Captura de pantalla de los detalles de cumplimiento de la asignación de invitados.

Visualización de los detalles de la asignación de configuración a escala

La característica de configuración de invitado se puede usar fuera de las asignaciones de Azure Policy. Por ejemplo, Azure AutoManage crea asignaciones de configuración de invitado, o puede asignar configuraciones cuando implemente máquinas.

Para ver todas las asignaciones de configuración de invitado del inquilino, en Azure Portal abra la página Asignaciones de invitado. Para ver información detallada sobre el cumplimiento, seleccione cada asignación mediante el vínculo de la columna "Nombre".

Captura de pantalla de la página Asignación de invitados.

Historial de cambios (versión preliminar)

Como parte de una nueva versión preliminar pública, los últimos 14 días del historial de cambios están disponibles para todos los recursos de Azure que admiten la eliminación de modo completa. El historial de cambios proporciona información acerca de cuándo se detectó un cambio y una diferencia visual para cada cambio. Se desencadena una detección de cambios cuando se agregan, eliminan o modifican las propiedades de Azure Resource Manager.

  1. Inicie el servicio Azure Policy en Azure Portal. Para ello, seleccione Todos los servicios y, a continuación, busque y seleccione Directiva.

  2. En la página Información general o Cumplimiento, seleccione una directiva con cualquier estado de compatibilidad.

  3. En la pestaña Compatibilidad de recursos, de la página Cumplimiento de directiva, seleccione un recurso.

  4. Seleccione la pestaña Historial de cambios (versión preliminar) en la página Compatibilidad de recursos. Se muestra una lista de cambios detectados, si existe alguna.

    Captura de pantalla de la pestaña Historial de cambios y las horas de modificación detectadas en la página Cumplimiento de recursos.

  5. Seleccione uno de los cambios detectados. Las diferencias visuales para el recurso se presentan en la página Historial de cambios.

    Captura de pantalla de las diferencias visuales del historial de cambios en el estado anterior y posterior de las propiedades en la página Historial de cambios.

Las diferencias visuales ayudan a identificar los cambios de un recurso. Los cambios detectados pueden no estar relacionados con el estado de compatibilidad actual del recurso.

Azure Resource Graph proporciona los datos del historial de cambios. Para consultar esta información fuera de Azure Portal, consulte Obtención de cambios de recursos.

Pasos siguientes