Funcionamiento de State Manager - AWS Systems Manager

Funcionamiento de State Manager

State Manager, una herramienta de AWS Systems Manager, es un servicio seguro y escalable que automatiza el proceso de mantener los nodos administrados en una infraestructura híbrida y multinube en el estado que defina.

Así es como funciona State Manager:

1. Determine el estado que desea aplicar a sus recursos de AWS.

¿Desea garantizar que los nodos administrados estén configurados con aplicaciones específicas, como, por ejemplo, las aplicaciones antivirus o malware? ¿Desea automatizar el proceso de actualización de SSM Agent u otros paquetes de AWS como AWSPVDriver? ¿Necesita garantizar que los puertos específicos se cierren o abran? Para comenzar a utilizar State Manager, determine el estado que desea aplicar a los recursos de AWS. El estado que desea aplicar determina qué documento de SSM se utiliza para crear una asociación de State Manager.

Una asociación de State Manager es una configuración que asigna a sus recursos de AWS. La configuración define el estado que desea mantener en los recursos. Por ejemplo, una asociación puede especificar que el software antivirus debe estar instalado y ejecutándose en un nodo administrado, o bien que determinados puertos deben estar cerrados.

Una asociación especifica una programación del momento en que aplicar la configuración y los destinos para la asociación. Por ejemplo, una asociación para software antivirus puede ejecutarse una vez al día en todos los nodos administrados de una Cuenta de AWS. Si el software no está instalado en un nodo, la asociación podría exigir a State Manager que lo instale. Si el software está instalado, pero el servicio no se está ejecutando, la asociación podría exigir a State Manager que inicie el servicio.

2. Determine si un documento de SSM preconfigurado puede ayudarlo a crear el estado deseado en los recursos de AWS.

Systems Manager incluye decenas de documentos de SSM preconfigurados que puede utilizar para crear una asociación. Los documentos preconfigurados están listos para llevar a cabo tareas comunes, como instalar aplicaciones, configurar Amazon CloudWatch, ejecutar automatizaciones de AWS Systems Manager, ejecutar scripts de PowerShell y Shell, y unir nodos administrados a un dominio de Directory Service para Active Directory.

Puede ver todos los documentos de SSM en la consola de Systems Manager. Elija el nombre de un documento para obtener más información acerca de cada uno de ellos. A continuación, se incluyen dos ejemplos: AWS-ConfigureAWSPackage y AWS-InstallApplication.

3. Cree una asociación.

Puede crear una asociación mediante la consola de Systems Manager, AWS Command Line Interface (AWS CLI), AWS Tools for Windows PowerShell (Tools for Windows PowerShell) o la API de Systems Manager. Al crear una asociación, debe especificar la siguiente información:

  • Un nombre para la asociación.

  • Los parámetros del documento de SSM (por ejemplo, la ruta a la aplicación que desee instalar o el script que se va a ejecutar en los nodos).

  • Destinos para la asociación. Puede definir el destino de los nodos administrados especificando etiquetas, eligiendo identificadores de nodo individuales o eligiendo un grupo en Grupos de recursos de AWS. También puede definir el destino de todos los nodos administrados en la Región de AWS y la Cuenta de AWS actuales. Si sus destinos incluyen más de 1000 nodos, el sistema utiliza un mecanismo de limitación horaria. Esto significa que es posible que vea imprecisiones en el recuento de agregación de estados, ya que este proceso se ejecuta por hora y solo cuando cambia el estado de ejecución de un nodo.

  • El rol que utiliza la asociación para realizar acciones en su nombre. State Manager asumirá este rol y llamará a las API necesarias cuando se envíen las configuraciones a los nodos. Para obtener más información sobre la configuración del rol proporcionado personalizado, consulte Configuración de roles para AssociationDispatchAssumeRole. Si no se proporciona ningún rol, se utilizará el rol vinculado al servicio para Systems Manager.

    nota

    Se recomienda que defina un rol de IAM personalizado para tener el control total sobre los permisos que dispone State Manager a la hora de realizar acciones en su nombre.

    La compatibilidad de los roles vinculados a servicios en State Manager se está eliminando gradualmente. Es posible que las asociaciones que dependen de un rol vinculado al servicio necesiten actualizaciones en el futuro para seguir funcionando correctamente.

    Para obtener información sobre cómo administrar el uso del rol proporcionado personalizado, consulte Administración del uso de AssociationDispatchAssumeRole con ssm:AssociationDispatchAssumeRole.

  • Una programación para indicar cuándo o con qué frecuencia se aplicará el estado. Puede especificar una expresión cron o rate. Para obtener más información acerca de la creación de programas usando expresiones Cron y Rate, consulte Expresiones cron y rate para asociaciones.

    nota

    State Manager actualmente no admite especificar meses en expresiones cron para asociaciones.

Cuando ejecuta el comando para crear la asociación, Systems Manager vincula la información que se especifica (programación, destinos, documento de SSM y parámetros) a los recursos de destino. El estado de la asociación inicialmente muestra Pending (Pendiente) pues el sistema intenta llegar a todos los destinos y aplicar inmediatamente el estado especificado en la asociación.

nota

Si crea una nueva asociación que está programada para ejecutarse mientras todavía se está ejecutando una asociación anterior, se agota el tiempo de espera de la asociación y se ejecuta la nueva asociación.

Systems Manager indica el estado de la solicitud para crear asociaciones en los recursos. Puede consultar los detalles de estado en la consola o, en el caso de los nodos administrados, mediante la operación DescribeInstanceAssociationsStatus de la API. Si elige escribir el resultado del comando en Amazon Simple Storage Service (Amazon S3) cuando crea una asociación, también podrá consultar el resultado en el bucket de Simple Storage Service (Amazon S3) que haya especificado.

Para obtener más información, consulte Trabajo con asociaciones en Systems Manager.

nota

Las operaciones de la API que inicia el documento SSM durante la ejecución de una asociación no se registran en AWS CloudTrail.

4. Monitorización y actualización.

Después de crear la asociación, State Manager vuelve a aplicar la configuración de acuerdo con la programación definida en la asociación. Puede ver el estado de sus asociaciones en la página de State Manager de la consola o llamando directamente al ID de asociación generado por Systems Manager cuando creó dicha asociación. Para obtener más información, consulte Visualización de los historiales de asociación. Puede actualizar los documentos de asociación y volver a aplicarlos según sea necesario. También puede crear varias versiones de una asociación. Para obtener más información, consulte Cómo editar y crear una nueva versión de una asociación.

Cómo saber cuándo se aplican las asociaciones a los recursos

Cuando crea una asociación, especifica un documento de SSM que define la configuración, una lista de recursos de destino y una programación para aplicar la configuración. De manera predeterminada, State Manager ejecuta la asociación cuando se crea, y luego según su programación. State Manager también intenta ejecutar la asociación en las siguientes situaciones:

  • Edición de asociación: State Manager ejecuta la asociación después de que un usuario edite y guarde los cambios realizados en cualquiera de los siguientes campos de la asociación: DOCUMENT_VERSION, PARAMETERS, SCHEDULE_EXPRESSION, OUTPUT_S3_LOCATION.

  • Edición de documento: State Manager ejecuta la asociación después de que un usuario edite y guarde los cambios realizados en el documento SSM que define el estado de configuración de la asociación. Concretamente, la asociación se ejecuta después de realizar las siguientes ediciones en el documento:

    • Un usuario especifica una nueva versión del documento $DEFAULT y la asociación se creó utilizando la versión $DEFAULT.

    • Un usuario actualiza un documento y la asociación se creó utilizando la versión $LATEST.

    • Un usuario elimina el documento que se especificó cuando se creó la asociación.

  • Inicio manual: State Manager ejecuta la asociación cuando la inicia el usuario desde la consola de Systems Manager o mediante programación.

  • Cambios de destino: State Manager ejecuta la asociación después de que se produzca alguna de las siguientes actividades en un nodo de destino:

    • Un nodo administrado se conecta por primera vez.

    • Un nodo administrado se conecta después de perder una ejecución de asociación programada.

    • Un nodo administrado se conecta después de haber estado detenido durante más de 30 días.

       

    nota

    State Manager no supervisa los documentos o paquetes utilizados en las asociaciones entre Cuentas de AWS. Si actualiza un documento o paquete en una cuenta, la actualización no hará que la asociación se ejecute en la segunda cuenta. Debe ejecutar la asociación de forma manual en la segunda cuenta.

    Cómo impedir que las asociaciones se ejecuten cuando cambia un destino

    En algunos casos, es posible que no quiera que una asociación se ejecute cuando un destino formado por nodos gestionados cambia, sino únicamente de acuerdo con la programación especificada.

    nota

    La ejecución de un manual de procedimientos de automatización tiene un costo. Si la asociación con un manual de procedimientos de automatización se dirige a todas las instancias de su cuenta y lanza un gran número de instancias con regularidad, el manual de procedimientos se ejecuta en cada una de las instancias cuando se lanza. Esto puede provocar un aumento de los gastos de automatización.

    Para evitar que se ejecute una asociación cuando cambian los destinos de esa asociación, seleccione la casilla Aplicar la asociación solo en el siguiente intervalo cron especificado. Esta casilla se encuentra en el área Especificar programación de las páginas Crear asociación y Editar asociación.

    Esta opción se aplica a las asociaciones que incorporan un manual de procedimientos de automatización o un documento de SSM.

Acerca de las actualizaciones de destino con los manuales de procedimientos de Automatización

Para que las asociaciones que se crean con los manuales de procedimientos de Automatización se apliquen cuando se detecten nuevos nodos de destino, se deben cumplir las siguientes condiciones:

  • La asociación debe haberla creado una configuración de Quick Setup. Quick Setup es una herramienta de AWS Systems Manager. Actualmente, no se admiten asociaciones creadas por otros procesos.

  • El manual de procedimientos de Automatización se debe dirigir explícitamente al tipo de recurso AWS::EC2::Instance o AWS::SSM::ManagedInstance.

  • La asociación debe especificar los parámetros y los destinos.

    En la consola, los campos Parámetro y Destinos se muestran al seleccionar una ejecución de control de velocidad.

    Las opciones de parámetros y destinos se presentan en la consola para las ejecuciones del control de velocidad

    Cuando use las acciones CreateAssociation, CreateAssociationBatch o UpdateAssociation de la API, puede especificar estos valores con las entradas AutomationTargetParameterName y Targets. En cada una de estas acciones de la API, también puede configurar el parámetro ApplyOnlyAtCronInterval en true para evitar que la asociación se ejecute cada vez que cambia un destino.

    Para obtener información sobre el uso de la consola para controlar cuándo se ejecutan las asociaciones, incluidos los detalles para evitar costos inesperadamente elevados en las ejecuciones de la automatización, consulte Cómo saber cuándo se aplican las asociaciones a los recursos.

Configuración de roles para AssociationDispatchAssumeRole

Para configurar los roles personalizados de asunción para el envío que State Manager asume para realizar acciones en su nombre, los roles deben confiar en ssm.amazonaws.com y tener el permiso necesario para llamar a ssm:SendCommand o ssm:StartAutomationExecution en función de los casos de uso de la asociación.

Ejemplo de política de confianza:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Administración del uso de AssociationDispatchAssumeRole con ssm:AssociationDispatchAssumeRole

Para administrar los roles personalizados de asunción para el envío que State Manager asume para realizar acciones en su nombre, utilice la clave de condición ssm:AssociationDispatchAssumeRole. Esta condición controla si las asociaciones se pueden crear o actualizar sin especificar un rol personalizado de asunción para el envío.

En el siguiente ejemplo de política, la instrucción "Allow" concede permisos a las API de creación y actualización de asociaciones solo cuando se especifica el parámetro AssociationDispatchAssumeRole. Sin este parámetro en las solicitudes de API, la política no concede permiso para crear ni actualizar asociaciones:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:CreateAssociation", "ssm:UpdateAssociation", "ssm:CreateAssociationBatch" ], "Resource": "*", "Condition": { "StringLike": { "ssm:AssociationDispatchAssumeRole": "*" } } } ] }