Comment bloquer des e-mails provenant de domaines ou d'adresses e-mail spécifiques dans Amazon SES ?

Date de la dernière mise à jour : 04/09/2019

Je ne veux pas que mon identité Amazon Simple Email Service (Amazon SES) reçoive des e-mails en provenance d'un domaine ou d'une adresse e-mail spécifique. Comment bloquer ces e-mails ? 

Brève description

Pour empêcher certains domaines ou adresses e-mail d'envoyer des e-mails à votre identité Amazon SES, procédez comme suit :

1.    Créez une fonction AWS Lambda pour traiter les e-mails entrants, évaluer l'expéditeur et supprimer le message si l'expéditeur correspond à un domaine ou une adresse e-mail spécifique.

2.    Créez une règle de réception Amazon SES qui achemine tous les e-mails entrants vers la fonction Lambda.

3.    Vérifiez les journaux Amazon CloudWatch de la fonction pour vérifier les e-mails bloqués.

Remarque : des frais Amazon SES et Lambda vous sont facturés lorsque vous ajoutez l'action Lambda à la règle de réception Amazon SES.

Solution

Créer une fonction AWS Lambda

1.    Ouvrez la console AWS Lambda.

2.    Dans le sélecteur de région de la barre de navigation, sélectionnez la région AWS que vous utilisez pour Amazon SES. La fonction Lambda doit se trouver dans la même région que celle que vous utilisez avec Amazon SES. Pour plus d'informations, consultez Action Lambda.

3.    Choisissez Create function (Créer une fonction).

4.    Sélectionnez Author from scratch (Créer à partir de zéro).

5.    Pour Function Name (Nom de la fonction), saisissez un nom pour votre fonction. Par exemple, vous pouvez entrer « SESReceiptRule ».

6.    Pour Runtime (Environnement d'exécution), sélectionnez Node.js 10.x.

7.    Sous Permissions (Autorisations), développez Choose or create an execution role (Choisir ou créer un rôle d'exécution).

8.    Pour Execution Role (Rôle d'exécution), sélectionnez Create a new role with basic Lambda permissions (Créer un rôle avec des autorisations Lambda de base).

9.    Choisissez Create function (Créer une fonction).

10.    Sous Function code (Code de fonction), entrez le code suivant :

// 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.    Sous Environment variables (Variables d'environnement), pour Key (Clé), entrez « blockingList ».

Remarque : il n'existe pas de limite au nombre de variables d'environnement que vous pouvez créer tant que la taille totale de l'ensemble ne dépasse pas 4 Ko. Pour plus d'informations, consultez Règles de dénomination des variables d'environnement.

12.    Pour Value (Valeur) de « blockingList », entrez la liste des adresses e-mail et des domaines, séparés par une virgule, à bloquer. Par exemple, entrez « example.com, JohnDoe@example.com ».

Remarque : vous pouvez modifier la liste des adresses e-mail et des domaines sans modifier le code de la fonction Lambda.

13.    Choisissez Save (Enregistrer).

Créer une règle de réception Amazon SES

1.    Ouvrez la console Amazon SES.

2.    Dans le volet de navigation, sous Email Receiving(Réception d'e-mails), choisissez Rule Sets (Ensembles de règles).

3.    Passez directement à l'étape 4 si vous souhaitez ajouter la règle à un ensemble de règles actif existant. Pour créer un nouvel ensemble de règles, choisissez Create a Rule Set (Créer un ensemble de règles), saisissez un nom d'ensemble de règles, puis choisissez Create a Rule Set (Créer un ensemble de règles).

Remarque : si vous créez un nouvel ensemble de règles, veillez à le sélectionner, puis choisissez Set as Active Rule Set (Définir comme ensemble de règles actif).

4.    Choisissez View Active Rule Set (Afficher l'ensemble de règles actif).

5.    Choisissez Create rule (Créer une règle).

Remarque : vous pouvez également choisir de mettre à jour une règle existante avec les mêmes valeurs que celles décrites dans les étapes suivantes.

6.    Pour Recipients (Destinataires), entrez les adresses e-mail ou les domaines associés à votre identité Amazon SES.

Important : entrez l'adresse e-mail ou le domaine que vous souhaitez empêcher de recevoir des e-mails d'expéditeurs spécifiques. Ne saisissez pas l'adresse e-mail ou le domaine à partir duquel vous souhaitez bloquer les e-mails. Par exemple, si votre identité Amazon SES utilise l'adresse e-mail « JaneRoe@exemple.net » et que vous souhaitez bloquer les e-mails provenant de « exemple.com », saisissez « JaneRoe@exemple.net ».

7.    Choisissez Next step (Étape suivante).

8.    Sous Actions, pour Add action (Ajouter une action), sélectionnez Lambda. Ensuite, renseignez les champs suivants :
Pour Lambda function (Fonction Lambda), sélectionnez la fonction que vous avez créée.
Pour Invocation type (Type d'innovation), sélectionnez RequestResponse.
(Facultatif) Configurez la rubrique SNS en fonction de votre cas d'utilisation. Vous pouvez également laisser le champ vide. Pour plus d'informations sur ce champ, consultez Action Lambda.

9.    Choisissez Next step (Étape suivante).

10.    Sous Rule Details (Informations de règle), renseignez les champs suivants :
Pour Rule name (Nom de la règle), attribuez un nom à votre règle.
Pour Enabled (Activé), veillez à cocher cette case afin que la règle soit créée comme règle active.
(Facultatif) Sélectionnez Require TLS (TLS obligatoire) ou Enable spam and virus scanning (Activer l'analyse des spams et des virus) si votre cas d'utilisation l'exige.
Pour Rule set (Ensemble de règles), vérifiez que votre ensemble de règles actif est sélectionné. Un ensemble de règles actif comprend (Active) (Actif) dans le nom.
Pour Insert after rule (Insérer après la règle), sélectionnez la position souhaitée de votre règle dans l'ensemble de règles.

11.    Choisissez Next step (Étape suivante).

12.    Choisissez Create rule (Créer une règle).

Remarque : si une boîte de dialogue Missing Permissions (Autorisations manquantes) s'affiche avec le message « SES was unable to access the resource [your Lambda function] », (SES n'a pas pu accéder à la ressource [votre fonction Lambda]), cela implique qu'Amazon SES a besoin d'autorisations pour la fonction. Vous pouvez choisir Add permissions (Ajouter des autorisations) pour configurer les autorisations requises.

Vérifier les journaux Amazon CloudWatch de la fonction

Une fois que vous avez configuré la fonction Lambda et la règle Amazon SES, procédez comme suit pour vérifier les e-mails bloqués :

1.    Ouvrez la console CloudWatch.

2.    Dans le volet de navigation, choisissez Logs (Journaux).

3.    Dans la liste des groupes de journaux, choisissez le groupe de journaux de votre fonction Lambda. Par exemple, choisissez /aws/lambda/nom_de_votre_fonction.

4.    Choisissez le flux de journaux à vérifier. Le flux de journaux affiche les messages électroniques et les domaines traités par la fonction Lambda, comme suit :

14:08:25 START RequestId: aa939984-1b9b-11e7-83d2-efc6877bdc9b Version: $LATEST
14: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

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?