Notificar a los usuarios los cambios de alarma
En esta sección se explica cómo puede utilizar las notificaciones de AWS usuario o Amazon Simple Notification Service para que se notifique a los usuarios de los cambios de alarma.
Configuración de las notificaciones de usuario de AWS
Puede usar las notificaciones de usuario de AWS para configurar canales de entrega de y recibir notificaciones sobre cambios de estado de alarma de CloudWatch y eventos de cambio de configuración. Recibirá una notificación cuando un evento coincida con una regla que especifique. Puede recibir notificaciones de eventos a través de varios canales, como correo electrónico, notificaciones por AWS Chatbot o notificaciones push en la aplicación móvil de la consola de AWS. También puede ver las notificaciones en el Centro de notificaciones de la consola
Las configuraciones de notificaciones que cree con las notificaciones de usuario de AWS no se tienen en cuenta para el límite del número de acciones que puede configurar por estado de alarma objetivo. A medida que Notificaciones de usuarios de AWS coinciden con los eventos emitidos a Amazon EventBridge, envía notificaciones para todas las alarmas de su cuenta y las regiones seleccionadas, a menos que especifique un filtro avanzado para permitir o denegar alarmas o patrones específicos.
El siguiente ejemplo de filtro avanzado coincide con un cambio de estado de alarma de OK a ALARM en la alarma llamada ServerCpuTooHigh
.
{ "detail": { "alarmName": ["ServerCpuTooHigh"], "previousState": { "value": ["OK"] }, "state": { "value": ["ALARM"] } } }
Puede usar cualquiera de las propiedades publicadas por una alarma en los eventos de EventBridge para crear un filtro. Para obtener más información, consulte Eventos de alarma y EventBridge.
Configuración de notificaciones de Amazon SNS
Puede usar Amazon Simple Notification Service para enviar mensajería de aplicación a aplicación (A2A) y mensajería de aplicación a persona (A2P), incluidos mensajes de texto (SMS) y mensajes de correo electrónico. Para obtener más información, consulte destinos de eventos de Amazon SNS.
Para cada estado que pueda adoptar una alarma, puede configurarla para que envíe un mensaje a un tema de SNS. Cada tema de Amazon SNS que configure para un estado de una alarma determinada se tendrá en cuenta para el límite del número de acciones que puede configurar para esa alarma y estado. Puede enviar mensajes al mismo tema de Amazon SNS desde cualquier alarma de su cuenta y usar el mismo tema de Amazon SNS tanto para los consumidores de aplicaciones (A2A) como para los consumidores personales (A2P). Como esta configuración se realiza a nivel de alarma, solo las alarmas que haya configurado envían mensajes al tema de Amazon SNS seleccionado.
En primer lugar, cree un tema y, a continuación, suscríbase al mismo. Como opción, puede publicar un mensaje de prueba en el tema. Para ver un ejemplo, consulta Configuración de un tema de Amazon SNS mediante la AWS Management Console. Para obtener más información, consulte Introducción a Amazon SNS.
Como alternativa, si tiene previsto crear la alarma de CloudWatch con la AWS Management Console, puede omitir este procedimiento, ya que puede crear el tema al crear la alarma.
Al crear una alarma de CloudWatch, puede añadir acciones para cualquier estado de destino en el que se encuentre la alarma. Añada una notificación de Amazon SNS para el estado sobre el que desee recibir notificaciones y seleccione el tema de Amazon SNS que creó en el paso anterior para enviar una notificación por correo electrónico cuando la alarma entre en el estado seleccionado.
nota
Cuando cree un tema de Amazon SNS, puede elegir convertirlo en un tema estándar o un tema FIFO. CloudWatch garantiza la publicación de todas las notificaciones de alarma en ambos tipos de temas. Sin embargo, incluso si utiliza un tema FIFO, en pocos casos, CloudWatch envía las notificaciones al tema que no se está utilizando. Si utiliza un tema FIFO, la alarma establece que el ID del grupo de mensajes de las notificaciones de alarma sea un hash de los ARN de la alarma.
Temas
Prevención de errores de seguridad de la sustitución confusa
El problema de la sustitución confusa es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. En AWS, la suplantación entre servicios puede dar lugar al problema de la sustitución confusa. La suplantación entre servicios puedes producirse cuando un servicio (el servicio que lleva a cabo las llamadas) llama a otro servicio (el servicio al que se llama). El servicio que lleva a cabo las llamadas se puedes manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente de una manera en la que no debe tener permiso para acceder. Para evitarlo, AWS proporciona herramientas que lo ayudan a proteger sus datos para todos los servicios con entidades principales de servicio a las que se les ha dado acceso a los recursos de su cuenta.
Recomendamos que utilice las claves de contexto de condición global aws:SourceArn
, aws:SourceAccount
, aws:SourceOrgID
y aws:SourceOrgPaths
en las políticas de recursos para limitar los permisos que Amazon SNS concede a otro servicio para el recurso. Utilice aws:SourceArn
para asociar solo un recurso al acceso entre servicios. Utilice aws:SourceAccount
para permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios. Utilice aws:SourceOrgID
para permitir que cualquier recurso de cuentas dentro de una organización se asocie al uso entre servicios. Utilice aws:SourceOrgPaths
para asociar cualquier recurso de cuentas dentro de una ruta de AWS Organizations al uso entre servicios. Para obtener más información acerca de cómo usar y comprender las rutas, consulte aws:SourceOrgPaths en la Guía del usuario de IAM.
La forma más eficaz de protegerse contra el problema de la sustitución confusa es utilizar la clave de contexto de condición global de aws:SourceArn
con el ARN completo del recurso. Si no conoce el ARN completo del recurso o si está especificando varios recursos, utilice la clave de condición de contexto global aws:SourceArn
con caracteres comodines (*
) para las partes desconocidas del ARN. Por ejemplo, arn:aws:
. servicename
:*:123456789012
:*
Si el valor de aws:SourceArn
no contiene el ID de cuenta, como un ARN de bucket de Amazon S3, debe utilizar aws:SourceAccount
y aws:SourceArn
para limitar los permisos.
Para protegerse contra el problema del suplente confuso a gran escala, utilice la clave de contexto de condición global aws:SourceOrgID
o aws:SourceOrgPaths
con el identificador de organización o la ruta de organización del recurso en sus políticas basadas en recursos. Las políticas que incluyan la clave aws:SourceOrgID
o aws:SourceOrgPaths
incluirán automáticamente las cuentas correctas y no requerirán una actualización manual cuando se agregan, quitan o mueven cuentas en la organización.
El valor de aws:SourceArn
debe ser el ARN de la alarma que envía las notificaciones.
En el siguiente ejemplo se muestra cómo se pueden utilizar las claves contextuales de condición global aws:SourceArn
y aws:SourceAccount
en CloudWatch para evitar el problema del adjunto confundido.
{ "Statement": [{ "Effect": "Allow", "Principal": { "Service": "cloudwatch.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-east-2:444455556666:MyTopic", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:cloudwatch:us-east-2:111122223333:alarm:*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }] }
Si un ARN de alarma incluye caracteres que no sean ASCII, utilice únicamente la clave de condición global aws:SourceAccount
para limitar los permisos.
Configuración de un tema de Amazon SNS mediante la AWS Management Console
En primer lugar, cree un tema y, a continuación, suscríbase al mismo. Como opción, puede publicar un mensaje de prueba en el tema.
Creación de un tema de SNS
Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home
. -
En el panel de Amazon SNS, en Common actions (Acciones comunes), elija Create Topic (Crear tema).
-
En el cuadro de diálogo Create new topic (Crear un nuevo tema), en Topic name (Nombre del tema), escriba un nombre para el tema (por ejemplo,
my-topic
). -
Elija Create new topic (Crear nuevo tema).
-
Copie el Topic ARN (ARN de tema) en la siguiente tarea (por ejemplo, arn:aws:sns:us-east-1:111122223333:my-topic).
Para suscribirse a un tema de SNS
Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home
. -
En el panel de navegación, elija Subscriptions, Create subscription.
-
En el cuadro de diálogo Create subscription, en Topic ARN, pegue el ARN del tema que creó en la tarea anterior.
-
En Protocolo, elige Correo electrónico.
-
En Endpoint (Punto de enlace), escriba una dirección de correo electrónico que puede utilizar para recibir la notificación y, a continuación, elija Create subscription (Crear suscripción).
-
Desde su aplicación de correo electrónico, abra el mensaje de Notificaciones de AWS y confirme la suscripción.
El navegador web muestra una respuesta de confirmación de Amazon SNS.
Para publicar un mensaje de prueba en un tema de SNS
-
Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home
. -
En el panel de navegación, elija Temas.
-
En la página Topics (Temas), seleccione un tema y elija Publish to topic (Publicar en tema).
-
En la página Publish a message (Publicar un mensaje), en Subject (Asunto), escriba una línea de asunto para el mensaje y en Message (Mensaje), escriba un mensaje breve.
-
Elija Publish Message (Publicar mensaje).
-
Compruebe el correo electrónico para confirmar que ha recibido el mensaje.
Configuración de un tema de SNS mediante la AWS CLI
Primero cree un tema de SNS y, a continuación, publique un mensaje directamente en el tema para comprobar que lo ha configurado correctamente.
Para configurar un tema de SNS
-
Cree el tema utilizando el comando create-topic como se indica a continuación.
aws sns create-topic --name
my-topic
Amazon SNS muestra un ARN del tema con el siguiente formato:
{ "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic" }
-
Suscríbase a su dirección de correo electrónico para utilizar el comando subscribe. Si la solicitud de suscripción tiene éxito, recibe un mensaje de correo electrónico de confirmación.
aws sns subscribe --topic-arn arn:aws:sns:
us-east-1
:111122223333
:my-topic
--protocol email --notification-endpointmy-email-address
Amazon SNS devuelve lo siguiente:
{ "SubscriptionArn": "pending confirmation" }
-
Desde su aplicación de correo electrónico, abra el mensaje de Notificaciones de AWS y confirme la suscripción.
En el navegador web se muestra una respuesta de confirmación de Amazon Simple Notification Service.
-
Compruebe la suscripción mediante el comando list-subscriptions-by-topic.
aws sns list-subscriptions-by-topic --topic-arn arn:aws:sns:
us-east-1
:111122223333
:my-topic
Amazon SNS devuelve lo siguiente:
{ "Subscriptions": [ { "Owner": "111122223333", "Endpoint": "me@mycompany.com", "Protocol": "email", "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic", "SubscriptionArn": "arn:aws:sns:us-east-1:111122223333:my-topic:64886986-bf10-48fb-a2f1-dab033aa67a3" } ] }
-
(Opcional) Publique un mensaje de prueba en el tema mediante el comando publish.
aws sns publish --message "Verification" --topic arn:aws:sns:
us-east-1
:111122223333
:my-topic
Amazon SNS devuelve lo siguiente.
{ "MessageId": "42f189a0-3094-5cf6-8fd7-c2dde61a4d7d" }
-
Compruebe el correo electrónico para confirmar que ha recibido el mensaje.
Esquema de notificaciones de Amazon SNS cuando las alarmas cambian de estado
En esta sección se enumeran los esquemas de las notificaciones que se envían a los temas de Amazon SNS cuando las alarmas cambian de estado.
Esquema en el que una alarma de métricas cambia de estado
{ "AlarmName": "string", "AlarmDescription": "string", "AWSAccountId": "string", "AlarmConfigurationUpdatedTimestamp": "string", "NewStateValue": "string", "NewStateReason": "string", "StateChangeTime": "string", "Region": "string", "AlarmArn": "string", "OldStateValue": "string", "OKActions": ["string"], "AlarmActions": ["string"], "InsufficientDataActions": ["string"], "Trigger": { "MetricName": "string", "Namespace": "string", "StatisticType": "string", "Statistic": "string", "Unit": "string or null", "Dimensions": [ { "value": "string", "name": "string" } ], "Period": "integer", "EvaluationPeriods": "integer", "DatapointsToAlarm": "integer", "ComparisonOperator": "string", "Threshold": "number", "TreatMissingData": "string", "EvaluateLowSampleCountPercentile": "string or null" } }
Esquema en el que una alarma compuesta cambia de estado
{ "AlarmName": "string", "AlarmDescription": "string", "AWSAccountId": "string", "NewStateValue": "string", "NewStateReason": "string", "StateChangeTime": "string", "Region": "string", "AlarmArn": "string", "OKActions": [String], "AlarmActions": [String], "InsufficientDataActions": [String], "OldStateValue": "string", "AlarmRule": "string", "TriggeringChildren": [String] }