[Versión preliminar] Uso de Azure Policy para asignar identidades administradas

Azure Policy ayuda a aplicar los estándares de la organización y a evaluar el cumplimiento a gran escala. Desde su panel de cumplimiento, ofrece una vista agregada que ayuda a los administradores en la evaluación del estado general del entorno. Se puede explorar en profundidad la granularidad por recurso y por directiva. También ayuda al cumplimiento de los recursos gracias a la corrección masiva de los recursos existentes y la corrección automática de nuevos recursos. Los casos de uso comunes de Azure Policy incluyen la gobernanza de la implementación para lo siguiente:

  • Coherencia de recursos
  • Cumplimiento de normativas
  • Seguridad
  • Costo
  • Administración

Las definiciones de directiva de estos casos de uso comunes ya están disponibles en el entorno de Azure para ayudarle a comenzar.

Los agentes de supervisión de Azure requieren una identidad administrada en las máquinas virtuales de Azure supervisadas. En este documento se describe el comportamiento de una instancia de Azure Policy integrada proporcionada por Microsoft que ayuda a garantizar que se asigna a las máquinas virtuales a gran escala una identidad administrada, necesaria para estos escenarios.

Aunque es posible usar la identidad administrada asignada por el sistema, cuando se usa a gran escala (por ejemplo, para todas las máquinas virtuales de una suscripción), se crea (y se elimina) un número considerable de identidades en Microsoft Entra ID. Para evitar esta renovación de identidades, se recomienda usar identidades administradas asignadas por el usuario, que se pueden crear una vez y compartirse entre varias máquinas virtuales.

Nota:

Se recomienda usar una identidad administrada asignada por el usuario por suscripción de Azure por región de Azure.

La directiva está diseñada para implementar esta recomendación.

Definición y detalles de la directiva

Cuando se ejecuta, la directiva realiza las siguientes acciones:

  1. Crea, si no existe, una nueva identidad administrada integrada asignada por el usuario en la suscripción y cada región de Azure en función de las máquinas virtuales cubiertas por el ámbito la directiva.
  2. Una vez creada, coloca un bloqueo en la identidad administrada asignada por el usuario para que no se elimine accidentalmente.
  3. Asigna la identidad administrada asignada por el usuario integrada a las máquinas virtuales desde la suscripción y la región en función de las cubiertas según el ámbito de la directiva.

Nota:

Si la máquina virtual tiene exactamente una identidad administrada asignada por el usuario ya asignada, la directiva omite esta máquina virtual para asignar la identidad integrada. Esto sirve para garantizar que la asignación de la directiva no interrumpe las aplicaciones que toman una dependencia del comportamiento predeterminado del punto de conexión de token de IMDS.

La directiva se usa en dos escenarios:

  • Permita que la directiva cree y use una identidad administrada asignada por el usuario "integrada".
  • Traiga su propia identidad asignada por el usuario.

La directiva toma los siguientes parámetros de entrada:

  • ¿Trae su propia UAMI? - ¿Debe la directiva crear, si no existe, una identidad administrada asignada por el usuario?
  • Si se establece en true, debe especificar:
    • El nombre de la identidad administrada.
    • El grupo de recursos en el que se debe crear la identidad administrada.
  • Si se establece en false, no se necesitan más entradas.
    • La directiva creará la identidad administrada asignada por el usuario necesaria denominada "built-in-identity" en un grupo de recursos denominado "built-in-identity-rg".

Uso de la directiva

Creación de la asignación de directiva

La definición de la directiva se puede asignar a distintos ámbitos de Azure, en la suscripción del grupo de administración o en un grupo de recursos específico. Dado que las directivas deben aplicarse todo el tiempo, la operación de asignación se realiza mediante una identidad administrada asociada al objeto de asignación de la directiva. El objeto de asignación de la directiva admite la identidad administrada tanto asignada por el sistema como por el usuario. Por ejemplo, Joe puede crear una identidad administrada asignada por el usuario denominada PolicyAssignmentMI. La directiva integrada crea una identidad administrada asignada por el usuario en cada suscripción y en cada región con recursos cubiertos por el ámbito de asignación de la directiva. Las identidades administradas asignadas por el usuario creadas por la directiva tienen el siguiente formato de resourceId:

/subscriptions/your-subscription-id/resourceGroups/built-in-identity-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/built-in-identity-{ubicación}

Por ejemplo:

/subscriptions/aaaabbbb-aaaa-bbbb-1111-111122223333/resourceGroups/built-in-identity-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/built-in-identity-eastus

Autorización obligatoria

Para que la identidad administrada de PolicyAssignmentMI pueda asignar la directiva integrada en el ámbito especificado, necesita los siguientes permisos, expresados como asignación de roles de Azure RBAC (control de acceso basado en roles de Azure):

Principal Rol o acción Ámbito Propósito
PolicyAssigmentMI Operador de identidad administrada /subscription/subscription-id/resourceGroups/built-in-identity
o
Bring-your-own-User-assinged-Managed identity
Necesario para asignar la identidad integrada a las máquinas virtuales.
PolicyAssigmentMI Colaborador /subscription/subscription-id> Necesario para crear el grupo de recursos que contiene la identidad administrada integrada en la suscripción.
PolicyAssigmentMI Colaborador de identidad administrada /subscription/subscription-id/resourceGroups/built-in-identity Necesario para crear una identidad administrada asignada por el usuario.
PolicyAssigmentMI Administrador de acceso de usuario /subscription/subscription-id/resourceGroups/built-in-identity
o
Bring-your-own-User-assigned-Managed identity
Necesario para establecer un bloqueo en la identidad administrada asignada por el usuario creada por la directiva.

Como el objeto de asignación de la directiva debe tener este permiso con antelación, PolicyAssignmentMI no puede ser una identidad administrada asignada por el sistema en este escenario. El usuario que realiza la tarea de asignación de la directiva debe autorizar PolicyAssignmentMI con antelación con las asignaciones de roles anteriores.

Como puede ver, el rol de privilegio mínimo resultante necesario es "colaborador" en el ámbito de la suscripción.

Problemas conocidos

Una condición de carrera con otra implementación que cambie las identidades asignadas a una máquina virtual puede provocar resultados inesperados.

Si hay dos o más implementaciones paralelas que actualizan la misma máquina virtual y todas cambian la configuración de identidad de la máquina virtual, es posible, en condiciones de carrera específicas, que las identidades esperadas NO se asignen a las máquinas. Por ejemplo, si la directiva de este documento actualiza las identidades administradas de una máquina virtual y, al mismo tiempo, otro proceso también realiza cambios en la sección de identidades administradas, no se garantiza que todas las identidades esperadas se asignen correctamente a la máquina virtual.

Pasos siguientes