Compartir a través de


Adopción de barreras de protección controladas por directivas

Antes de usar directivas, debe comprender dónde se usan en las implementaciones de referencia de la zona de aterrizaje de Azure y por qué. Este artículo le ayudará a comprender si desea impedir que DeployIfNotExists (DINE) o Modificar directivas realice cambios en el entorno de Azure.

¿Por qué usar directivas DINE y Modify?

Las directivas DINE y Modify forman parte de las implementaciones de referencia de zona de aterrizaje de Azure. Le ayudan a usted y a su organización a asegurarse de que las zonas de aterrizaje, que también se conocen como suscripciones, y los recursos dentro de ellas cumplan con las normativas. Estas directivas también eliminan la carga operativa de los equipos de plataforma y zona de aterrizaje a medida que se escala el entorno de Azure.

Por ejemplo, considere un escenario en el que se aprovisiona una nueva suscripción de zona de aterrizaje y se coloca en el grupo de administración "corp". Después, las directivas DINE y Modify llevan a cabo las siguientes acciones para la suscripción a la zona de aterrizaje:

  • Habilite Microsoft Defender for Cloud. Configure las exportaciones de Defender for Cloud al área de trabajo central de Log Analytics en la suscripción de administración.
  • Habilite Defender para la nube para las diferentes ofertas compatibles, según los parámetros de configuración establecidos en la asignación de políticas.
  • Configure los registros de actividad de Azure que se enviarán al área de trabajo central de Log Analytics en la suscripción de administración.
  • Configure las opciones de diagnóstico de todos los recursos que se enviarán al área de trabajo central de Log Analytics en la suscripción de administración.
  • Implemente los agentes de Azure Monitor necesarios para máquinas virtuales y Azure Virtual Machine Scale Sets, incluidos los servidores conectados a Azure Arc. Conéctelos al área de trabajo central de Log Analytics en la suscripción de administración.

Nota

Puede deshabilitar las opciones anteriores en cualquier momento o durante la implementación de las implementaciones de referencia de zona de aterrizaje de Azure.

En la lista anterior se muestra un subconjunto de todas las directivas que se asignan como parte del acelerador de zonas de aterrizaje de Azure. Para obtener una lista completa de las directivas que se pueden asignar mediante la implementación de referencia de la zona de aterrizaje de Azure, consulte Directivas incluidas en las implementaciones de referencia de zonas de aterrizaje de Azure.

El repositorio de Bicep de zonas de aterrizaje de Azure es modular. Las políticas predeterminadas mencionadas pueden desplegarse con el módulo ALZ de asignaciones de políticas predeterminadas.

Todas las directivas asignadas le ayudan a usted y a los propietarios de la zona de aterrizaje a cumplir con las normativas. No se implementan recursos de carga de trabajo reales a través de las directivas DINE o Modify. Tampoco lo recomendamos. Para más información, consulte ¿Se debe usar Azure Policy para implementar cargas de trabajo?. Solo los recursos o valores auxiliares o de apoyo se implementan o configuran mediante estas directivas DINE.

Las implementaciones de referencia de las zonas de aterrizaje de Azure usan directivas de Azure DINE para ayudarle a lograr una gobernanza controlada por directivas dentro de su entorno de Azure. Sin embargo, es posible que no pueda usar las directivas DINE o Modify o que no esté listo para habilitar este tipo de efecto de directiva de Azure debido a lo siguiente:

  • Directivas de cumplimiento normativo, estándares o restricciones legales.
  • Procesos estrictos de control de cambios que requieren aprobación humana para cada acción dentro de su entorno de Azure.
  • Falta de pericia, experiencia y comprensión de cómo administrar y usar las políticas DINE.
  • Los requisitos de la organización exigen que todas las configuraciones de recursos de carga de trabajo, incluidos los recursos auxiliares, los recursos de apoyo y la configuración, sean definidas en la infraestructura como código (IaC) por los equipos de aplicaciones de carga de trabajo.

Si encaja en los ejemplos anteriores o escenarios similares, este artículo le ayuda a comprender cómo adoptar la arquitectura conceptual de la zona de aterrizaje de Azure y cumplir sus principios de diseño . Aunque no usará algunas directivas inicialmente, puede optar por habilitarlas gradualmente en el futuro. El objetivo es ayudarle a lograr una gobernanza controlada por directivas.

Importante

En este artículo, verá dos valores posibles usados para los términos del modo de cumplimiento:

  • Deshabilitado o DoNotEnforce
  • Habilitado o predeterminado

Azure Portal usa Deshabilitado y Habilitado para el modo de cumplimiento. Las plantillas de Azure Resource Manager (ARM) y otras interfaces de API usan DoNotEnforce y Default para las mismas opciones.

Para más información, consulte Modo de cumplimiento.

Si está seguro de que su organización no puede usar las directivas DINE o Modificar políticas, este artículo explica cómo evitar que las directivas realicen cambios automáticos en el entorno de Azure, también conocido como deshabilitarlas.

Nota

Esta operación no es permanente. Un miembro de su equipo de plataforma puede volver a habilitar las directivas en cualquier momento si más adelante decide utilizar las directivas DINE o modificar otras políticas.

Para obtener más información, vea fase 2 y fase 3.

La compatibilidad con selectores de recursos también es aplicable a la gobernanza controlada por directivas para asegurarse de que se cumplen los procedimientos de implementación seguros (SDP). Los selectores de recursos proporcionan la funcionalidad de la implementación gradual de asignaciones de directivas en función de factores como la ubicación del recurso, el tipo de recurso o si el recurso tiene una ubicación. Puede encontrar más en este documento.

Introducción al enfoque

En el diagrama siguiente se resume el enfoque por fases sugerido:

Gráfico que muestra una introducción a las fases DINE.

  1. Establezca el Modo de cumplimiento en DoNotEnforce en Asignaciones de directiva:
    • Con esta función, puede modificar el comportamiento de las asignaciones para que se conviertan eficazmente en una política exclusivamente de auditoría sin modificar la definición de política subyacente.
    • Este enfoque también le permite realizar tareas de corrección manual en recursos no compatibles mediante tareas de corrección, en caso de que lo desee.
  2. Establezca el Modo de cumplimiento en Default en Asignaciones de directivas para volver a habilitar la corrección automática de asignaciones de directivas DINE en un ámbito reducido:
    • Puede optar por usar un entorno completo, por ejemplo, el grupo de administración de espacio aislado.
    • O bien, puede usar una suscripción para carga de trabajo no crítica.
  3. Establezca el Modo de cumplimiento en Default en Asignaciones de directiva en las directivas DINE restantes en todo el entorno de Azure.

Debido a las restricciones de cumplimiento normativo, algunos clientes nunca pueden pasar de la fase 1. Esto no es un problema y se admite la permanencia en este estado, si es necesario. Otros clientes pueden avanzar a las fases 2 y 3 para adoptar completamente DINE y Modificar directivas para ayudar con la gobernanza controlada por directivas para su entorno de Azure.

Nota

El escenario y el enfoque descritos en este artículo no están pensados ni recomendados para la mayoría de los clientes. Revise la sección ¿Por qué usar DINE y modificar directivas? antes de decidir si estas directivas son adecuadas y necesarias para su entorno.

Fase 1: Deshabilitar las acciones automatizadas de DINE y Modificar directivas

Al asignar una directiva, de forma predeterminada se aplicará el efecto definido en la definición de directiva. Se recomienda dejar la definición de directiva tal como está. Por ejemplo, deje el efecto de asignación de directiva como DeployIfNotExists.

En lugar de cambiar la definición de directiva o su efecto, puede influir en este comportamiento con un esfuerzo mínimo mediante la característica en las asignaciones de directivas.

Uso de Azure Portal para establecer el modo de cumplimiento en Deshabilitado

En esta captura de pantalla se muestra cómo usar Azure Portal para establecer el modo de cumplimiento en Deshabilitado en una asignación de directiva. Deshabilitado también se conoce como DoNotEnforce.

Establezca el modo de cumplimiento en Deshabilitado en Azure Portal.

Uso de la plantilla de ARM para establecer el modo de cumplimiento en DoNotEnforce

En este ejemplo de código se muestra cómo usar una plantilla de ARM para establecer enforcementMode en DoNotEnforce en una asignación de política. DoNotEnforce también se conoce como Disabled.

{
  "type": "Microsoft.Authorization/policyAssignments",
  "apiVersion": "2019-09-01",
  "name": "PolicyAssignmentName",
  "location": "[deployment().location]",
  "properties": {
    "description": "PolicyAssignmentDescription",
    "policyDefinitionId": "[parameters('policyDefinitionId')]",
    "enforcementMode": "DoNotEnforce"
    … // other properties removed for display purposes
  }
}

Mediante el modo de cumplimiento , puede ver el efecto de una directiva en los recursos existentes sin iniciarlo ni desencadenar entradas en el registro de actividad de Azure. Este escenario se conoce normalmente como "What If" y se alinea con las prácticas de implementación seguras.

Incluso cuando el modo de cumplimiento está establecido en DoNotEnforce, las tareas de corrección se pueden desencadenar manualmente. Puede corregir recursos no compatibles específicos. También puede ver lo que habría hecho la directiva DINE o Modify si el modo de cumplimiento se hubiera establecido en Default.

Importante

Cuando el modo de cumplimiento se establece en DoNotEnforce, no se generan entradas en el registro de actividad de Azure. Tenga en cuenta este factor si desea recibir una notificación cuando se crea un recurso no conforme.

Permanecer permanentemente en el estado de fase 1

Como se menciona en la sección resumen del enfoque , algunos clientes podrían necesitar permanecer en la fase 1 durante un largo período o incluso de forma permanente debido a sus requisitos. Este estado es válido y los clientes pueden permanecer en él durante cualquier período de tiempo.

Quizás necesite permanecer en este estado permanentemente o durante un largo período, como años. En ese caso, puede que sea mejor que adopte el efecto de directiva AuditIfNotExists (AINE) y las definiciones asociadas, y que vuelva a establecer el modo de cumplimiento en Default.

Nota

Al cambiar para usar una directiva AINE y establecer el Modo de cumplimiento en Default, seguirá logrando el mismo objetivo de deshabilitar DINE.

Al cambiar de DINE a AINE y establecer de nuevo el modo de aplicación en Default como un enfoque permanente o a largo plazo para la fase 1, recuperará las entradas del registro de actividad de Azure relativas a los estados de cumplimiento de directivas. Puede crear flujos de trabajo de automatización a partir de estas entradas de registro en las operaciones generales de administración de plataformas.

Perderá la capacidad de realizar tareas de corrección manuales. A diferencia de las directivas DINE, las directivas de AINE no realizan ninguna implementación, ya sea automatizada o manual.

No olvide actualizar la definición de directiva para aceptar y permitir el efecto de asignación de directiva AuditIfNotExists.

En la tabla siguiente se resumen las opciones e implicaciones de los distintos tipos de efectos de directiva y combinaciones de modo de cumplimiento:

Efecto de directiva Modo de cumplimiento Entrada del registro de actividad Acción de corrección
DINE Habilitado o predeterminado Corrección desencadenada por la plataforma a gran escala después de la creación o actualización de recursos. Creación manual de una tarea de remediación es requerida si un recurso dependiente se modifica o ya existía antes de la asignación de la política.
CENA Deshabilitado o DoNotEnforce No Se requiere la creación manual de una tarea de corrección.
Modificar Habilitado o predeterminado Corrección automática durante la creación o actualización.
Modificar Deshabilitado o DoNotEnforce No Se requiere la creación manual de una tarea de remediación.
Denegar Habilitado o predeterminado Se ha denegado la creación o actualización.
Denegar Deshabilitado o DoNotEnforce No Se permite la creación o actualización. Se requiere remediación manual.
Auditoría/AINE Habilitado o predeterminado Se requiere remediación manual.
Auditoría/AINE Deshabilitado o DoNotEnforce No Se requiere remediación manual.

Nota

Revise las instrucciones de Reacción a eventos de cambio de estado de Azure Policy para comprender si el uso de la integración de Azure Event Grid con Azure Policy proporciona un enfoque adecuado si planea crear su propia automatización basada en eventos de estado de directiva.

Fase 2: Activar DINE y modificar políticas en una política específica o ámbito reducido.

En esta fase, aprenderá a establecer el modo de cumplimiento en Default en las asignaciones de directivas.

Después de haber completado la fase 1, decide que quiere probar todas las funcionalidades de automatización de las directivas DINE y Modify en una directiva específica o en un ámbito reducido. Quiere usar el grupo de administración de espacio aislado o una suscripción de carga de trabajo que no es de producción.

Para realizar este procedimiento, primero debe identificar la directiva o el ámbito reducido que se usará para probar las capacidades de automatización completa de las directivas DINE y Modificar.

Nota

Es posible que quiera revisar e implementar un enfoque de pruebas de para una plataforma de a escala empresarial. De este modo, puede probar directivas y otros cambios de plataforma en una jerarquía de grupos de administración separados dentro del mismo inquilino.

Este enfoque también se conoce como una implementación de "valor controlado".

En la tabla siguiente se muestran algunos ejemplos sugeridos de ámbitos y directivas:

Cuando quieras... Elegir entre estos ámbitos Directivas de ejemplo que se van a usar
- Pruebe las funcionalidades de corrección automatizada DINE/Modify.
- Compruebe cómo pueden verse afectados los procesos de implementación completos y las canalizaciones de CI/CD, incluidas las pruebas.
- Compruebe cómo podría verse afectada la carga de trabajo.
- Suscripción a espacio aislado
- Grupo de administración de espacio aislado
- Suscripción a la zona de aterrizaje para cargas de trabajo no de producción
- Entorno de "valor controlado" a escala empresarial
- Configure los registros de actividad de Azure para transmitirlos a un área de trabajo de Log Analytics especificada.
- Implementación de la configuración de Defender for Cloud.
- Habilite Azure Monitor para VM o Virtual Machine Scale Sets.
- Implementación de la configuración de diagnóstico en los servicios de Azure.
- Posiblemente solo se habilite para servicios específicos dentro de la iniciativa.

También puede decidir usar una tarea de corrección manual en un ámbito limitado o un conjunto de recursos para probar cómo afectarán a su entorno estas directivas. Para más información sobre cómo crear una tarea de corrección, consulte la documentación de Azure Policy Creación de una tarea de corrección.

Después de identificar una directiva o directivas, y el ámbito reducido para asignarlos, el siguiente paso es asignar la directiva y establecer el modo de cumplimiento en Default. Deje el efecto de la directiva, por ejemplo, DeployIfNotExists o Modify, tal como está en el ámbito reducido que ha seleccionado.

Uso de Azure Portal para establecer el modo de cumplimiento en Habilitado

En esta captura de pantalla se muestra cómo usar Azure Portal para establecer el modo de cumplimiento en Habilitado en una asignación de directiva. Habilitado también se conoce como Predeterminado.

Captura de pantalla que muestra cómo establecer el modo de cumplimiento en Habilitado en Azure Portal.

Uso de una plantilla de ARM para establecer el modo de cumplimiento en Predeterminado

En este ejemplo de código se muestra cómo usar una plantilla de ARM para establecer enforcementMode en Default en una asignación de directiva. Default también se conoce como Enabled.

{
  "type": "Microsoft.Authorization/policyAssignments",
  "apiVersion": "2019-09-01",
  "name": "PolicyAssignmentName",
  "location": "[deployment().location]",
  "properties": {
    "description": "PolicyAssignmentDescription",
    "policyDefinitionId": "[parameters('policyDefinitionId')]",
    "enforcementMode": "Default"
    … // other properties removed for display purposes
  }
}

Ensayo

El último paso de esta fase es realizar las pruebas necesarias. Desea verificar si las políticas DINE o Modify han afectado y cómo han realizado cambios en sus cargas de trabajo, código, herramientas y procesos.

Realice varias pruebas para capturar todo el ciclo de vida de la carga de trabajo. Debe asegurarse de que comprende totalmente si las directivas DINE o Modify realizaron cambios y cómo lo hicieron.

Algunos ejemplos de pruebas son:

  • Despliegue inicial de la carga de trabajo.
  • Implementación de código o aplicación en el entorno de trabajo.
  • Operaciones del día 2 y administración de la carga de trabajo.
  • Retirada de la carga de trabajo.

Fase 3: Habilitar DINE y Modificar directivas en todas partes

En esta fase, aprenderá a establecer el modo de cumplimiento en Default en las asignaciones de directivas.

Se supone que las pruebas al final de la fase 2 se realizaron correctamente. O bien, quizás esté satisfecho con que ahora comprenda cómo interactúan las directivas DINE o Modify con la carga de trabajo. Ahora puede expandir el uso de DINE y Modificar directivas en el resto del entorno de Azure.

Para continuar, siga los pasos similares a los de fase 2. Esta vez, establecerá el modo de cumplimiento en Default en todas las asignaciones de directivas DINE y Modify en todo el entorno de Azure.

Esta es una introducción general de alto nivel de los pasos que se realizan en esta fase:

  • Quite las asignaciones usadas específicamente para las pruebas durante la fase 2.
  • Repase cada asignación de directiva DINE y Modify en el entorno de Azure y establezca el modo de cumplimiento en Default. Este proceso se muestra en los ejemplos de la fase 2.
  • Cree tareas de corrección para los recursos existentes que no son compatibles siguiendo las instrucciones de Crear una tarea de corrección. Los nuevos recursos se corregirán automáticamente si coinciden con las reglas de la directiva y las condiciones de existencia.

Aunque en la fase 3 se recomienda establecer el modo de cumplimiento en Default para todas las directivas DINE y Modify en el entorno de Azure, esta opción sigue siendo opcional. Puede elegir esta opción por directiva para satisfacer sus necesidades y requisitos.

Administración avanzada de directivas

Para la administración avanzada de Azure Policy a escala, considere la posibilidad de implementar Enterprise Policy as Code (EPAC) para administrar la directiva. EPAC proporciona una experiencia de administración con estado que usa IaC. Por lo general, se adapta a grandes escenarios de administración de políticas con requisitos complejos.