¿Cómo puedo bloquear ciertos correos electrónicos de dominios o direcciones de correo electrónico en Amazon SES?

6 minutos de lectura
0

No quiero que mi identidad de Amazon Simple Email Service (Amazon SES) reciba correos electrónicos de un dominio o dirección de correo electrónico determinados.

Breve descripción

Para evitar que ciertos dominios o direcciones de correo electrónico envíen correos electrónicos a su identidad de Amazon SES, siga estos pasos:

  1. Cree una función de AWS Lambda. Configure la función para procesar los correos electrónicos entrantes, evaluar al remitente y, a continuación, eliminar el mensaje si el remitente coincide con un dominio o una dirección de correo electrónico específicos.
  2. Cree una regla de recepción de Amazon SES que dirija todo el correo electrónico entrante a la función de Lambda.
  3. Revise los Registros de Amazon CloudWatch de la función para asegurarse de que los correos electrónicos se bloquean.

Nota: Se le cobrarán cargos de Amazon SES y Lambda al añadir la acción de Lambda a la regla de recepción de Amazon SES.

Resolución

Creación de una función de Lambda

1.    Abra la consola de AWS Lambda. Seleccione la región de AWS que utiliza para Amazon SES. La función de Lambda debe estar en la misma región de AWS que utiliza con Amazon SES. Para obtener más información, consulte Acción de invocación de una función de Lambda.

2.    Elija Crear función.

3.    Seleccione Crear desde cero.

4.    En Nombre de la función, introduzca un nombre para la función. Por ejemplo, introduzca «SESReceiptRule».

5.    En Tiempo de ejecución, seleccione un lenguaje para la función. En este ejemplo, se ha seleccionado Node.js 14.x.

6.    En Arquitectura, elija una arquitectura para el código de la función.

7.    En Permisos, expanda Cambiar el rol de ejecución predeterminado.

8.    En Rol de ejecución, seleccione Crear un nuevo rol con permisos de Lambda básicos.

9.    Elija Crear función.

10.    En la sección Código fuente, en la pestaña index.js, introduzca el código siguiente:

// Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.// SPDX-License-Identifier: MIT-0
'use strict';

const AWS = require('aws-sdk');

exports.handler = (event, context, callback) => {
    console.log('Blocking email filter starting');
    const sesNotification = event.Records[0].ses;
    const messageId = sesNotification.mail.messageId;
    const receipt = sesNotification.receipt;
    const mail = sesNotification.mail;

    // Convert the environment variable into array. Clean spaces from it.
    var blockingListString = process.env.blockingList;
    blockingListString = blockingListString.replace(/\s/g,'');
    var blockingListArray = blockingListString.split(",");

    // Check if the mail source matches with any of the email addresses or domains defined in the environment variable
    function isListed() {
        var length = blockingListArray.length;
        for(var i = 0; i < length; i++) {
            if (mail.source.endsWith(blockingListArray[i]))
                return true;
        }
        return false;
    }
    console.log('Processing message:', messageId);

        // Processing the message
    if (isListed()) {
            callback(null, {'disposition':'STOP_RULE_SET'});
            console.log('Rejecting messageId: ', messageId, ' - Source: ', mail.source, ' - Recipients: ',receipt.recipients,' - Subject: ', mail.commonHeaders['subject']);
    }
    else {
        console.log('Accepting messageId:', messageId, ' - Source: ', mail.source, ' - Recipients: ',receipt.recipients,' - Subject: ', mail.commonHeaders['subject']);
        callback();
    }
};

11.    En Variables de entorno, en Clave, introduzca «blockingList».
Nota: No hay límite en cuanto al número de variables de entorno que puede crear, siempre que el tamaño total del conjunto no supere los 4 KB. Para obtener más información, consulte Uso de variables de entorno de AWS Lambda.

12.    En el valor de «blockingList», introduzca una lista separada por comas de las direcciones de correo electrónico y los dominios que desea bloquear. Por ejemplo, escriba «example.com, JohnDoe@example.com».
Nota: No es necesario que cambie el código de la función de Lambda para editar la lista de direcciones de correo electrónico y dominios.

13.    Elija Archivo y, a continuación, elija Guardar.

Creación de una regla de recepción de Amazon SES

  1. Abra la consola de Amazon SES.
  2. En el panel de navegación, seleccione Recepción de correo electrónico.
  3. Si desea añadir la regla a un conjunto de reglas activo existente, vaya al paso 4. Para crear un nuevo conjunto de reglas, elija Crear un conjunto de reglas, introduzca un nombre de conjunto de reglas y, a continuación, elija Crear un conjunto de reglas.
    Nota: Si crea un nuevo conjunto de reglas, asegúrese de seleccionar el conjunto de reglas y, a continuación, elija Establecer como conjunto de reglas activo.
  4. Elija Ver conjunto de reglas activo.
  5. Elija Crear regla.
    Nota: También puede optar por actualizar una regla existente con los mismos valores que se describen en los siguientes pasos.
  6. En Definir la configuración de reglas, introduzca la siguiente información:
    En Nombre de regla, introduzca un nombre para la regla.
    En Estado, active la casilla Habilitado para crear la regla como regla activa. A continuación, elija Siguiente.
  7. En Condiciones de destinatario, seleccione Agregar nueva condición de destinatario.
  8. En Condición del destinatario, introduzca las direcciones de correo electrónico o los dominios asociados a su identidad de Amazon SES. A continuación, elija Siguiente.
    Importante: Introduzca la dirección de correo electrónico o el dominio que desee impedir que reciban correos de remitentes específicos. No introduzca la dirección de correo electrónico ni el dominio desde el que desea bloquear los correos electrónicos. Por ejemplo, si su identidad de Amazon SES utiliza la dirección de correo electrónico «JaneRoe@example.net» y desea bloquear los correos de «example.com», introduzca «JaneRoe@example.net».
  9. En la pantalla Agregar acciones, en Agregar nueva acción, seleccione Invocar función de AWS Lambda. A continuación, introduzca la información siguiente:
    En Función de Lambda, seleccione la función que ha creado.
    En Tipo de invocación, seleccione Invocación RequestResponse.
    (Opcional) Configure Tema de SNS según requiera su caso de uso. También puede dejar este campo en blanco. Para obtener más información sobre este campo, consulte Acción de invocación de una función de Lambda. A continuación, elija Siguiente.
  10. Elija Crear regla.
    Nota: Es posible que aparezca un cuadro de diálogo Faltan permisos con el mensaje «SES no pudo acceder al recurso [su función de Lambda]». Este error significa que Amazon SES necesita permisos para la función. Puede elegir Agregar permisos para configurar los permisos necesarios.

Comprobación de los registros de CloudWatch de la función

Tras configurar la función de Lambda y la regla de Amazon SES, siga estos pasos para verificar que los correos electrónicos están bloqueados:

1.    Abra la consola de CloudWatch.

2.    En el panel de navegación, en Registros, elija Grupos de registros.

3.    En la lista de grupos de registro, elija el grupo de registro de la función de Lambda. Por ejemplo, elija /aws/lambda/name_of_your_function.

4.    En Secuencias de registro, elija la secuencia de registro que quiera comprobar. La secuencia de registro muestra los mensajes de correo electrónico y los dominios que procesa la función de Lambda, de forma similar al siguiente ejemplo:

14:08:25 START RequestId: aa939984-1b9b-11e7-83d2-efc6877bdc9b Version: $LATEST14:08:25 2017-04-07T14:08:25.957Z aa939984-1b9b-11e7-83d2-efc6877bdc9b Blocking email filter starting
14:08:25 2017-04-07T14:08:25.958Z aa939984-1b9b-11e7-83d2-efc6877bdc9b Processing message: jc0iurgrtkrsrs7f5pk0rsmf4r3q0poikdjfdi01
14:08:25 2017-04-07T14:08:25.959Z aa939984-1b9b-11e7-83d2-efc6877bdc9b Rejecting messageId: jc0iurgrtkrsrs7f5pk0rsmf4r3q0poikdjfdi01 - Source:
user@example.com - Recipients: [ 'user@domain.com' ] - Subject: This is an unwanted message
14:08:25 END RequestId: aa939984-1b9b-11e7-83d2-efc6877bdc9b

Información relacionada

Introducción a Lambda

Control basado en destinatarios mediante reglas de recepción

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 7 meses