Monitoreo de los cambios de estado de Systems Manager mediante las notificaciones de Amazon SNS - AWS Systems Manager

Monitoreo de los cambios de estado de Systems Manager mediante las notificaciones de Amazon SNS

nota

Los temas FIFO de Amazon Simple Notification Service no son compatibles.

Puede configurar Amazon Simple Notification Service (Amazon SNS) para que envíe notificaciones sobre el estado de los comandos que envía a través de Run Command o Maintenance Windows, capacidades de AWS Systems Manager. Amazon SNS coordina y administra el envío y la entrega de las notificaciones a los clientes o puntos de enlace que estén suscritos a temas de Amazon SNS. Puede recibir una notificación siempre que un comando cambie a un estado nuevo o cambie a un estado específico como, por ejemplo, Failed (Error) o Timed Out (Tiempo de espera agotado). En los casos en que un comando se envía a varios nodos, puede recibir una notificación por cada copia del comando enviada a un nodo concreto. Cada copia se denomina una invocación.

Amazon SNS puede entregar las notificaciones como HTTP o HTTPS POST, por email (SMTP, con texto sin formato o con formato JSON) o como mensaje publicado en una cola de Amazon Simple Queue Service (Amazon SQS). Para obtener más información, consulte ¿Qué es Amazon SNS? en la Guía para desarrolladores de Amazon Simple Notification Service. Para ver ejemplos de la estructura de los datos JSON incluidos en la notificación de Amazon SNS que proporciona Run Command y el Maintenance Windows, consulte Ejemplo de notificaciones de Amazon SNS para AWS Systems Manager.

Configuración de notificaciones de Amazon SNS para AWS Systems Manager

Run Command y las tareas de Maintenance Windows registradas en un periodo de mantenimiento pueden enviar notificaciones de Amazon SNS para tareas de comandos que introducen los siguientes estados:

  • En curso

  • Success

  • Con error

  • Tiempo de espera agotado

  • Cancelado

Para obtener información sobre las condiciones que causan que un comando pase a tener uno de estos estados, consulte Descripción de los estados del comando.

nota

Los comandos que se envían cuando se utiliza Run Command también notifican los estados Canceling (Cancelando) y Pending (Pendiente). Estos estados no se capturan en las notificaciones de Amazon SNS.

Notificaciones de Amazon SNS de resumen de comandos

Si configura Run Command o una tarea de Run Command en su periodo de mantenimiento para notificaciones de Amazon SNS, Amazon SNS envía mensajes de resumen que contienen la siguiente información.

Campo Tipo Descripción

eventTime

Cadena

La hora a la que se inició el evento. La marca temporal es importante porque Amazon SNS no garantiza el orden de entrega de los mensajes. Ejemplo: 2016-04-26T13:15:30Z

documentName

Cadena

El nombre del documento de SSM utilizado para ejecutar este comando.

commandId

Cadena

El ID generado por Run Command después de haber enviado el comando.

expiresAfter

Date

Si se llega a esta hora y el comando aún no ha empezado a ejecutarse, no se ejecutará.

outputS3BucketName

Cadena

El bucket de Amazon Simple Storage Service (Amazon S3) donde deben almacenarse las respuestas a la ejecución de comandos.

outputS3KeyPrefix

Cadena

La ruta del directorio de Amazon S3 dentro del bucket donde deben guardarse las respuestas a la ejecución de comandos.

requestedDateTime

Cadena

La hora y la fecha en la que se envió la solicitud a este nodo específico.

instanceIds

StringList

Los nodos a los que se dirige el comando.

nota

Los ID de instancia solo se incluyen en el mensaje de resumen si la tarea Run Command dirigió a sus destinos los ID de instancia directamente. Los ID de instancia no se incluyen en el mensaje de resumen si la tarea Run Command se emitió con destino basado en etiquetas.

estado

Cadena

El estado del comando.

Notificaciones de Amazon SNS basadas en invocaciones

Si envía un comando a varios nodos, Amazon SNS puede enviar mensajes sobre cada copia o invocación del comando. Los mensajes incluyen la siguiente información.

Campo Tipo Descripción

eventTime

Cadena

La hora a la que se inició el evento. La marca temporal es importante porque Amazon SNS no garantiza el orden de entrega de los mensajes. Ejemplo: 2016-04-26T13:15:30Z

documentName

Cadena

El nombre del documento de Systems Manager (documento SSM) utilizado para ejecutar este comando.

requestedDateTime

Cadena

La hora y la fecha en la que se envió la solicitud a este nodo específico.

commandId

Cadena

El ID generado por Run Command después de haber enviado el comando.

instanceId

Cadena

La instancia que el comando tiene como destino.

estado

Cadena

Estado del comando para esta invocación.

Para configurar las notificaciones de Amazon SNS cuando un comando cambie el estado, realice las siguientes tareas.

nota

Si no va a configurar las notificaciones de Amazon SNS para su periodo de mantenimiento, puede omitir la tarea 5 que se encuentra más adelante en este tema.

Tarea 1: crear y suscribirse a un tema de Amazon SNS

Un Tema de Amazon SNS es un canal de comunicación queRun Command y las tareas de Run Command registradas en un periodo de mantenimiento utilizan para enviar notificaciones sobre el estado de sus comandos. Amazon SNS admite diferentes protocolos de comunicación, incluidos HTTP/S, email y otros Servicios de AWS, como Amazon Simple Queue Service (Amazon SQS). Para comenzar, le recomendamos que empiece con el protocolo de email. Para obtener más información acerca de la creación de un tema, consulte Creating an Amazon SNS topic (Creación de un tema de Amazon SNS) en la Guía para desarrolladores de Amazon Simple Notification Service.

nota

Después de crear el tema, copie o anote el valor de Topic ARN. Tendrá que especificar este ARN al enviar un comando que está configurado para devolver notificaciones de estado.

Después de crear el tema, suscríbase a él especificando un punto de enlace. Si eligió el protocolo de correo electrónico el punto de enlace es la dirección de correo electrónico donde desea recibir las notificaciones. Para obtener más información acerca de cómo se suscribe a un tema, consulte Subscribing to an Amazon SNS topic (Suscripción a un tema de Amazon SNS) en la Guía para desarrolladores de Amazon Simple Notification Service.

Amazon SNS envía un email de confirmación desde AWSNotifications a la dirección de email que especifique. Abra el email y elija el enlace Confirm subscription (Confirmar la suscripción).

Recibirá un mensaje de confirmación de AWS. Amazon SNS estará ahora configurado para recibir notificaciones y enviar la notificación como un email a la dirección especificada.

Tarea 2: crear una política de IAM para notificaciones de Amazon SNS

Utilice el siguiente procedimiento para crear una política de AWS Identity and Access Management (IAM) personalizada que proporcione permisos para iniciar notificaciones de Amazon SNS.

Para crear una política personalizada de IAM para notificaciones de Amazon SNS
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Policies y, a continuación, seleccione Create Policy. (Si aparece el botón Get Started [Empezar], elíjalo y, a continuación, elija Create Policy [Crear política]).

  3. Seleccione la pestaña JSON.

  4. Reemplace el contenido predeterminado por lo siguiente.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": "arn:aws:sns:region:account-id:sns-topic-name" } ] }

    region representa el identificador de Región de AWS compatible con AWS Systems Manager, como us-east-2 para la región EE. UU. Este (Ohio). Para ver una lista de los valores de regiones admitidos, consulte la columna Región en Puntos de conexión de servicio de Systems Manager en la Referencia general de Amazon Web Services.

    account-id representa el identificador de 12 dígitos de su Cuenta de AWS en el formato 123456789012.

    sns-topic-name representa el nombre del tema de Amazon SNS que desea utilizar para la publicación de notificaciones.

  5. Elija Next: Tags (Siguiente: Etiquetas).

  6. (Opcional) Agregue uno o varios pares de valor etiqueta-clave para organizar, realizar un seguimiento o controlar el acceso a esta política.

  7. Elija Siguiente: Revisar.

  8. En la página Review Policy (Revisar política), en Name (Nombre), escriba un nombre para la política insertada. Por ejemplo: my-sns-publish-permissions.

  9. (Opcional) En Description (Descripción), escriba una descripción para la política.

  10. Elija Crear política.

Tarea 3: crear un rol de IAM para notificaciones de Amazon SNS

Utilice el siguiente procedimiento para crear un rol de IAM para las notificaciones de Amazon SNS. Systems Manager utiliza este rol de servicio para dar comienzo a las notificaciones de Amazon SNS. En todos los procedimientos siguientes, este rol se denomina rol de IAM de Amazon SNS.

Para crear un rol de servicio de IAM para las notificaciones de Amazon SNS
  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación de la consola de IAM, seleccione Roles y, a continuación, elija Crear rol.

  3. Elija el tipo de rol Servicio de AWS y, a continuación, seleccione Systems Manager.

  4. Elija el caso de uso de Systems Manager. A continuación, elija Siguiente.

  5. En la página Attach permissions policies (Adjuntar políticas de permisos), seleccione la casilla situada a la izquierda del nombre de la política personalizada creada en la tarea 2. Por ejemplo: my-sns-publish-permissions.

  6. (Opcional) Configure un límite de permisos. Se trata de una característica avanzada que está disponible para los roles de servicio, pero no para los roles vinculados a servicios.

    Amplíe la sección Límite de permisos y seleccione Usar un límite de permisos para controlar los permisos máximos de la función. IAM incluye una lista de las políticas administradas por AWS y de las políticas administradas por el cliente de cada cuenta. Seleccione la política que desea utilizar para el límite de permisos o elija Crear política para abrir una pestaña nueva del navegador y crear una política nueva desde cero. Para obtener más información, consulte Creación de políticas de IAM en la Guía del usuario de IAM. Una vez creada la política, cierre la pestaña y vuelva a la pestaña original para seleccionar la política que va a utilizar para el límite de permisos.

  7. Elija Siguiente.

  8. De ser posible, escriba un nombre o sufijo de nombre para el rol, que pueda ayudarle a identificar su finalidad. Los nombres de rol deben ser únicos en su Cuenta de AWS. No distinguen entre mayúsculas y minúsculas. Por ejemplo, no puede crear funciones denominado tanto PRODROLE como prodrole. Dado que varias entidades pueden hacer referencia al rol, no puede editar el nombre del rol después de crearlo.

  9. (Opcional) En Descripción, ingrese una descripción para el nuevo rol.

  10. Seleccione Editar en las secciones Paso 1: seleccionar entidades de confianza o Paso 2: seleccionar permisos para editar los casos de uso y los permisos del rol.

  11. (Opcional) Asocie etiquetas como pares de clave-valor para agregar metadatos al rol. Para obtener más información sobre el uso de etiquetas en IAM, consulte Etiquetado de recursos de IAM en la Guía de usuario de IAM .

  12. Revise el rol y, a continuación, seleccione Crear rol.

  13. Elija el nombre del rol y copie o anote el valor de Role ARN (ARN del rol). Este nombre de recurso de Amazon (ARN) para el rol se utiliza cuando envía un comando que está configurado para devolver notificaciones de Amazon SNS.

  14. Mantenga la página Resumen abierta.

Tarea 4: configurar el acceso del usuario

Si a una entidad de IAM (usuario, rol o grupo) se le asignan permisos de administrador, el usuario o el rol tiene acceso a Run Command y Maintenance Windows, capacidades de AWS Systems Manager.

Para las entidades sin permisos de administrador, el administrador debe conceder los siguientes permisos a la entidad de IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/sns-role-name" } ] }

Para dar acceso, agregue permisos a los usuarios, grupos o roles:

Para configurar el acceso de los usuarios y adjuntar la política iam:PassRole a una cuenta de usuario
  1. En el panel de navegación de IAM, elija Users (Usuarios) y, a continuación, seleccione la cuenta de usuario que desea configurar.

  2. En la pestaña Permissions (Permisos), en la lista de políticas, verifique que aparece la política AmazonSSMFullAccess o que hay una política equivalente que conceda los permisos de cuenta para acceder a Systems Manager.

  3. Elija Agregar política insertada.

  4. En la página Create policy (Crear política), elija la pestaña Visual editor (Editor visual).

  5. Elija Choose a service (Elegir un servicio) y después IAM.

  6. En Actions (Acciones), en el cuadro de texto Filter actions (Filtrar acciones), ingrese PassRole y, a continuación, elija la casilla junto a PassRole.

  7. En Resources (Recursos), compruebe que esté seleccionado Specific (Específicos) y elija Add ARN (Agregar ARN).

  8. En el campo Specify ARN for role (Especificar el ARN del rol), pegue el ARN del rol de IAM de Amazon SNS que copió al final de la tarea 3. El sistema rellena automáticamente los campos Account (Cuenta) y Role name with path (Nombre del rol con ruta).

  9. Elija Add (Agregar).

  10. Elija Review policy (Revisar política).

  11. En la página Review Policy (Revisar política), ingrese un nombre y, a continuación, elija Create policy (Crear la política).

Tarea 5: asociar la política iam:PassRole al rol de periodo de mantenimiento

Al registrar una tarea de Run Command a un periodo de mantenimiento, debe especificar un rol de servicio de nombre de recurso de Amazon (ARN). Systems Manager utiliza este rol de servicio para ejecutar tareas registradas en el periodo de mantenimiento. Para configurar notificaciones de Amazon SNS para una tarea de Run Command registrada, adjunte una política iam:PassRole al rol de servicio del periodo de mantenimiento especificado. Si no tiene intención de configurar la tarea registrada para notificaciones de Amazon SNS, puede omitir esta tarea.

La política iam:PassRole permite al rol de servicio del Maintenance Windows transferir el rol de IAM de Amazon SNS creado en la tarea 3 al servicio de Amazon SNS. El siguiente procedimiento muestra cómo adjuntar la política iam:PassRole al rol de servicio del Maintenance Windows.

nota

Debe utilizar un rol de servicio personalizado para que su periodo de mantenimiento envíe notificaciones relacionadas con las tareas de Run Command registradas. Para obtener más información, consulte Configuración de Maintenance Windows.

Si necesita crear un rol de servicio personalizado para las tareas de periodo de mantenimiento, consulte Utilice la consola para configurar permisos para periodos de mantenimiento.

Para adjuntar la política de iam:PassRole a su rol de Maintenance Windows.
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Roles (Roles) y seleccione el rol de IAM de Amazon SNS creado en la tarea 3.

  3. Copie o anote el valor de Role ARN (ARN de rol) y regrese a la sección Roles (Roles) de la consola de IAM.

  4. Seleccione el rol de servicio del Maintenance Windows personalizado creado de la lista de Role name (Nombre del rol).

  5. En la pestaña Permissions (Permisos), verifique si aparece la política AmazonSSMMaintenanceWindowRole o si hay una política equivalente que conceda permisos de periodo de mantenimiento para la API de Systems Manager. Si no es así, elija Agregar permisos, Adjuntar políticas para adjuntarla.

  6. Elija Add permissions, Create inline policy (Agregar permisos, Crear política insertada).

  7. Seleccione la pestaña Visual editor (Editor visual).

  8. En Service (Servicio), seleccione IAM.

  9. En Actions (Acciones), en el cuadro de texto Filter actions (Filtrar acciones), ingrese PassRole y, a continuación, elija la casilla junto a PassRole.

  10. En Resources (Recursos), elija Specific (Específico), y, a continuación, elija Add ARN (Agregar ARN).

  11. En el cuadro Specify ARN for role (Especificar ARN para rol) pegue el ARN del rol de IAM de Amazon SNS creado en la tarea 3 y, a continuación, elija Add (Agregar).

  12. Elija Revisar política.

  13. En la página Revisar política, especifique un nombre para la política PassRole y, a continuación, elija Crear política.