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.
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:
- 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.
- 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.
- 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.
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
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 | Sí | 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 | Sí | 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 | Sí | 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 | Sí | 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.
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.