Notificaciones de entorno de Elastic Beanstalk con Amazon SNS - AWS Elastic Beanstalk

Notificaciones de entorno de Elastic Beanstalk con Amazon SNS

Puede configurar su entorno de AWS Elastic Beanstalk para que utilice Amazon Simple Notification Service (Amazon SNS) para notificarle eventos importantes que afecten a su aplicación. Para recibir mensajes de correo electrónico de AWS siempre que se produzca un error o cambie el estado del entorno, especifique una dirección de correo electrónico al crear un entorno o después de crearlo.

nota

Elastic Beanstalk utiliza Amazon SNS para las notificaciones. Para obtener información sobre los precios de Amazon SNS, consulte https://aws.amazon.com/sns/pricing/.

Cuando configura notificaciones para el entorno, Elastic Beanstalk crea un tema de Amazon SNS para este en su nombre. Para enviar mensajes a un tema de Amazon SNS, Elastic Beanstalk debe tener el permiso requerido. Para obtener más información, consulte Configuración de los permisos para enviar notificaciones.

Cuando se produce un evento notable, Elastic Beanstalk envía un mensaje al tema. A continuación, Amazon SNS transmite los mensajes que recibe a los suscriptores del tema. Los eventos destacables incluyen errores de creación del entorno y todos los cambios en el estado del entorno y las instancias. Los eventos para las operaciones de Amazon EC2 Auto Scaling (como agregar y eliminar instancias del entorno) y otros eventos informativos no activan las notificaciones.


      Correo electrónico de notificación de Amazon SNS

Puede escribir una dirección de correo electrónico en la consola de Elastic Beanstalk al crear un entorno o en algún momento posterior. Esto creará un tema de Amazon SNS y se suscribirá a él. Elastic Beanstalk administra el ciclo de vida del tema y lo elimina cuando se termina el entorno o cuando elimina su dirección de correo electrónico en la consola de administración del entorno.

El espacio de nombres de aws:elasticbeanstalk:sns:topics ofrece opciones de configuración de un tema de Amazon SNS mediante el uso de archivos de configuración, una CLI o un SDK. Mediante uno de estos métodos, puede configurar el tipo de suscriptor y el punto de enlace. Para el tipo de suscriptor, puede elegir una cola de Amazon SQS o una URL HTTP.

Solo puede activar o desactivar notificaciones de Amazon SNS. La frecuencia de las notificaciones enviadas al tema puede ser alta, en función del tamaño y la composición del entorno. Para configurar las notificaciones que se enviarán en circunstancias específicas, tiene otras opciones. Puede configurar reglas controladas por eventos con Amazon EventBridge que lo notifican cuando Elastic Beanstalk emite eventos que cumplen criterios específicos. O bien, puede configurar su entorno para publicar métricas personalizadas y establecer alarmas de Amazon CloudWatch a fin de que lo notifiquen cuando estas métricas alcancen un umbral incorrecto.

Configuración de notificaciones mediante la consola de Elastic Beanstalk

Puede escribir una dirección de correo electrónico en la consola de Elastic Beanstalk a fin de crear un tema de Amazon SNS para su entorno.

Para configurar notificaciones en la consola de Elastic Beanstalk

  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (Regiones), seleccione su región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Notifications (Notificaciones), elija Edit (Editar).

  5. Escriba una dirección de correo electrónico.

    
            Página de configuración de notificaciones de Elastic Beanstalk
  6. Seleccione Apply.

Cuando escribe una dirección de correo electrónico para notificaciones, Elastic Beanstalk crea un tema de Amazon SNS para su entorno y añade una suscripción. Amazon SNS envía un correo electrónico a la dirección suscrita para confirmar la suscripción. Debe hacer clic en el enlace del correo electrónico de confirmación para activar la suscripción y recibir notificaciones.

Configuración de las notificaciones con las opciones de configuración

Utilice las opciones del espacio de nombres de aws:elasticbeanstalk:sns:topics para configurar notificaciones de Amazon SNS para el entorno. Puede definir estas opciones utilizando archivos de configuración, una CLI o un SDK.

  • Punto de enlace de notificación: la dirección de correo electrónico, cola de Amazon SQS o URL a la que se envían las notificaciones. Si establece esta opción, se creará una cola de SQS y una suscripción para el punto de enlace especificado. Si el punto de enlace no es una dirección de correo electrónico, también debe establecer la opción Notification Protocol. SNS valida el valor de Notification Endpoint en función del valor de Notification Protocol. Si define esta opción varias veces, se crean suscripciones adicionales al tema. Si quita esta opción, el tema se elimina.

  • Protocolo de notificación: el protocolo que se utiliza para enviar notificaciones al Notification Endpoint. El valor predeterminado de esta opción es email. Defina esta opción para email-json enviar correo electrónico con formato JSON, http o https para publicar notificaciones con formato JSON a un punto de enlace HTTP, o sqs para enviar notificaciones a una cola de SQS.

    nota

    Las notificaciones de AWS Lambda no son compatibles.

  • ARN de tema de notificación: después de establecer un punto de enlace de notificación para su entorno, consulte este valor para obtener el ARN del tema de SNS. También puede definir esta opción para que se utilice un tema de SNS para recibir notificaciones. Un tema asociado a su entorno mediante esta opción no se elimina al cambiar esta opción o termina el entorno.

    Para configurar las notificaciones de Amazon SNS, debe tener los permisos necesarios. Si el usuario de IAM utiliza la política de usuario administrada AdministratorAccess-AWSElasticBeanstalk, ya debe disponer de los permisos necesarios para configurar el tema predeterminado de Amazon SNS que Elastic Beanstalk crea para el entorno. Sin embargo, si configura un tema de Amazon SNS que Elastic Beanstalk no administra, deberá agregar la siguiente política a su rol de usuario.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:SetTopicAttributes", "sns:GetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:sns_topic_name" ] } ] }
  • Nombre de tema de notificación: defina esta opción para personalizar el nombre del tema de Amazon SNS utilizado para las notificaciones del entorno. Si existe un tema con el mismo nombre, Elastic Beanstalk asocia ese tema al entorno.

    aviso

    Si asocia un tema de SNS existente a un entorno con un Notification Topic Name, Elastic Beanstalk eliminará el tema en caso de que termine el entorno o cambie esta configuración en el futuro.

    Si cambia esta opción, también se cambia el Notification Topic ARN. Si ya hay un tema asociado al entorno, Elastic Beanstalk eliminará el tema anterior y creará un tema y una suscripción nuevos.

    Al utilizar un nombre de tema personalizado, también debe proporcionar un ARN de un tema personalizado creado externamente. La política de usuario administrada no detecta automáticamente un tema con un nombre personalizado, por lo que debe proporcionar permisos personalizados de Amazon SNS a los usuarios de IAM. Utilice una política similar a la que se utiliza para un ARN de tema personalizado, pero incluya lo siguiente:

    • Incluya dos acciones más en la lista Actions, concretamente: sns:CreateTopic, sns:DeleteTopic.

    • Si va a cambiar el Notification Topic Name de un nombre de tema personalizado a otro, incluya los ARN de ambos temas en la lista Resource. También puede incluir una expresión regular que cubra ambos temas. De esta forma, Elastic Beanstalk tiene permisos para eliminar el tema anterior y crear el nuevo.

La CLI de EB y la consola de Elastic Beanstalk aplican los valores recomendados a las opciones anteriores. Debe eliminar estos ajustes si desea usar archivos de configuración para configurarlos. Para obtener más información, consulte Valores recomendados.

Configuración de los permisos para enviar notificaciones

En esta sección se describen las consideraciones de seguridad relacionadas con las notificaciones que utiliza Amazon SNS. Existen dos casos distintos:

  • Utilice el tema predeterminado de Amazon SNS que Elastic Beanstalk crea para su entorno.

  • Proporcione un tema externo de Amazon SNS a través de las opciones de configuración.

La política de acceso predeterminada para un tema de Amazon SNS permite solo al propietario del tema publicarlo o suscribirse a él. Sin embargo, mediante la configuración adecuada de la política, se puede conceder permiso a Elastic Beanstalk para publicar en un tema de Amazon SNS en cualquiera de los dos casos descritos en esta sección. En las siguientes subsecciones se proporciona más información.

Permisos de un tema predeterminado

Cuando configura notificaciones para su entorno, Elastic Beanstalk crea un tema de Amazon SNS para su entorno. Para enviar mensajes a un tema de Amazon SNS, Elastic Beanstalk debe tener el permiso requerido. Si su entorno utiliza el rol de servicio que la consola de Elastic Beanstalk o la CLI de EB han generado para él, o el rol vinculado al servicio de monitoreo de la cuenta, no es necesario hacer nada más. Estos roles administrados incluyen el permiso necesario para que Elastic Beanstalk envíe mensajes al tema de Amazon SNS.

Sin embargo, si ha proporcionado un rol de servicio personalizado al crear su entorno, asegúrese de que incluya la siguiente política.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:ElasticBeanstalkNotifications*" ] } ] }

Permisos de un tema externo

En Configuración de las notificaciones con las opciones de configuración se explica cómo puede reemplazar el tema de Amazon SNS que proporciona Elastic Beanstalk por otro tema de Amazon SNS. Si reemplazó el tema, Elastic Beanstalk debe comprobar que tiene permiso para publicar en este tema de SNS a fin de poder asociar el tema SNS con el entorno. Debería tener sns:Publish. El rol de servicio utiliza el mismo permiso. Para verificar que este es el caso, Elastic Beanstalk envía una notificación de prueba a SNS como parte de su acción a fin de crear o actualizar el entorno. Si esta prueba falla, el intento de crear o actualizar el entorno también falla. Elastic Beanstalk muestra un mensaje que explica el motivo de la falla.

Si proporciona un rol de servicio personalizado para su entorno, asegúrese de que incluya la siguiente política a fin de permitir que Elastic Beanstalk envíe mensajes al tema de Amazon SNS. En el siguiente código, reemplace sns_topic_name con el nombre del tema de Amazon SNS que proporcionó en las opciones de configuración.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:sns_topic_name" ] } ] }

Para obtener más información sobre el control de acceso de Amazon SNS, consulte Casos de ejemplo para el control de acceso de Amazon SNS en la Guía para desarrolladores de Amazon Simple Notification Service.