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. notaLos 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.
Temas
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
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
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]).
-
Seleccione la pestaña JSON.
-
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, comous-east-2
para la región EE. UU. Este (Ohio). Para ver una lista de los valores deregiones
admitidos, consulte la columna Región en Puntos de conexión de servicio de Systems Manager en la Referencia general de Amazon Web Services.
representa el identificador de 12 dígitos de su Cuenta de AWS en el formatoaccount-id
123456789012
.sns-topic-name
representa el nombre del tema de Amazon SNS que desea utilizar para la publicación de notificaciones. -
Elija Next: Tags (Siguiente: Etiquetas).
-
(Opcional) Agregue uno o varios pares de valor etiqueta-clave para organizar, realizar un seguimiento o controlar el acceso a esta política.
-
Elija Siguiente: Revisar.
-
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
. -
(Opcional) En Description (Descripción), escriba una descripción para la política.
-
Seleccione 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
Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación de la consola de IAM, seleccione Roles y, a continuación, elija Crear rol.
-
Elija el tipo de rol Servicio de AWS y, a continuación, seleccione Systems Manager.
-
Elija el caso de uso de Systems Manager. A continuación, elija Siguiente.
-
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
. -
(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.
-
Elija Siguiente.
-
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
comoprodrole
. Dado que varias entidades pueden hacer referencia al rol, no puede editar el nombre del rol después de crearlo. -
(Opcional) En Descripción, ingrese una descripción para el nuevo rol.
-
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.
-
(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 .
-
Revise el rol y, a continuación, seleccione Crear rol.
-
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.
-
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:
-
La política administrada
AmazonSSMFullAccess
, o una política que proporcione permisos comparables. -
Permisos
iam:PassRole
para el rol creado en Tarea 3: crear un rol de IAM para notificaciones de Amazon SNS. Por ejemplo:
{ "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:
-
Usuarios y grupos en AWS IAM Identity Center:
Cree un conjunto de permisos. Siga las instrucciones de Creación de un conjunto de permisos en la Guía del usuario de AWS IAM Identity Center.
-
Usuarios gestionados en IAM a través de un proveedor de identidades:
Cree un rol para la federación de identidades. Siga las instrucciones descritas en Creación de un rol para un proveedor de identidad de terceros (federación) en la Guía del usuario de IAM.
-
Usuarios de IAM:
-
Cree un rol que el usuario pueda aceptar. Siga las instrucciones descritas en Creación de un rol para un usuario de IAM en la Guía del usuario de IAM.
-
(No recomendado) Adjunte una política directamente a un usuario o añada un usuario a un grupo de usuarios. Siga las instrucciones descritas en Adición de permisos a un usuario (consola) de la Guía del usuario de IAM.
-
Para configurar el acceso de los usuarios y adjuntar la política iam:PassRole
a una cuenta de usuario
-
En el panel de navegación de IAM, elija Users (Usuarios) y, a continuación, seleccione la cuenta de usuario que desea configurar.
-
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. -
Elija Agregar política insertada.
-
En la página Create policy (Crear política), elija la pestaña Visual editor (Editor visual).
-
Elija Choose a service (Elegir un servicio) y después IAM.
-
En Actions (Acciones), en el cuadro de texto Filter actions (Filtrar acciones), ingrese
PassRole
y, a continuación, elija la casilla junto a PassRole. -
En Resources (Recursos), compruebe que esté seleccionado Specific (Específicos) y elija Add ARN (Agregar ARN).
-
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).
-
Elija Add (Agregar).
-
Elija Review policy (Revisar política).
-
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, consulta Configuración de Maintenance Windows.
Si necesita crear un rol de servicio personalizado para las tareas de periodo de mantenimiento, consulte Configuración de Maintenance Windows.
Para adjuntar la política de iam:PassRole
a su rol de Maintenance Windows.
-
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación, seleccione Roles (Roles) y seleccione el rol de IAM de Amazon SNS creado en la tarea 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.
-
Seleccione el rol de servicio del Maintenance Windows personalizado creado de la lista de Role name (Nombre del rol).
-
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. -
Elija Add permissions, Create inline policy (Agregar permisos, Crear política insertada).
-
Seleccione la pestaña Visual editor (Editor visual).
-
En Service (Servicio), seleccione IAM.
-
En Actions (Acciones), en el cuadro de texto Filter actions (Filtrar acciones), ingrese
PassRole
y, a continuación, elija la casilla junto a PassRole. -
En Resources (Recursos), elija Specific (Específico), y, a continuación, elija Add ARN (Agregar ARN).
-
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).
-
Elija Revisar política.
-
En la página Revisar política, especifique un nombre para la política
PassRole
y, a continuación, elija Crear política.