Come faccio a bloccare le e-mail provenienti da domini o indirizzi e-mail specifici in Amazon SES?

6 minuti di lettura
0

Non voglio che la mia identità Amazon Simple Email Service (Amazon SES) riceva e-mail da un determinato dominio o indirizzo e-mail.

Breve descrizione

Per impedire a determinati domini o indirizzi e-mail di inviare e-mail alla tua identità Amazon SES, completa i seguenti passaggi:

  1. Creare una funzione AWS Lambda. Configura la funzione per elaborare le e-mail in arrivo, valutare il mittente ed elimina il messaggio se il mittente corrisponde a un dominio o un indirizzo e-mail specifico.
  2. Crea una regola di ricezione di Amazon SES che indirizzi tutte le e-mail in arrivo alla funzione Lambda.
  3. Controlla i file di log Amazon CloudWatch della funzione per verificare che le e-mail siano bloccate.

Nota: Quando aggiungi l'azione Lambda alla regola di ricezione di Amazon SES, vengono addebitati i costi di Amazon SES e Lambda.

Risoluzione

Creare una funzione Lambda

1.    Apri la console AWS Lambda. Seleziona la regione AWS che usi per Amazon SES. La funzione Lambda deve trovarsi nella stessa regione utilizzata con Amazon SES. Per ulteriori informazioni, vedi Invoke Lambda function action.

2.    Scegli Crea funzione.

3.    Seleziona Author from scratch (Crea da zero).

4.    Per Nome funzione, inserisci un nome per la tua funzione. Ad esempio, immetti "SESReceiptRule".

5.    Per Runtime, seleziona una lingua per la tua funzione. In questo esempio è selezionato Node.js 14.x.

6.    Per Architettura, scegliete un'architettura per il codice della funzione.

7.    Sotto Autorizzazioni espandi Modifica del ruolo di esecuzione predefinito.

8.    Per Ruolo di esecuzione, seleziona Crea un nuovo ruolo con autorizzazioni Lambda di base.

9.    Scegli Crea funzione.

10.    Nella sezione Codice sorgente, nella scheda index.js, inserisci il codice seguente:

// 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.    In Variabili d'ambiente, per Chiave, inserisci "blockingList".
Nota: Non c'è limite al numero di variabili di ambiente che puoi creare. La dimensione totale del set non può superare i 4 KB. Per ulteriori informazioni, consulta Utilizzo delle variabili di ambiente di AWS Lambda.

12.    Per il valore "blockingList", inserisci un elenco separato da virgole degli indirizzi e-mail e dei domini che vuoi bloccare. Ad esempio, inserisci "example.com, JohnDoe@example.com".
Nota: Non è necessario modificare il codice della funzione Lambda per modificare l'elenco di indirizzi e-mail e domini.

13.    Scegli File, quindi scegli Salva.

Crea una regola di ricezione Amazon SES

  1. Apri la console Amazon SES.
  2. Nel riquadro di navigazione, scegli Ricezione e-mail.
  3. Se vuoi aggiungere la regola a un set di regole attivo esistente, vai al passaggio 4. Per creare un nuovo set di regole, scegli Crea un set di regole, inserisci un nome per il set di regole, quindi scegli Crea set di regole.
    Nota: Se crei un nuovo set di regole, assicurati di selezionarlo, quindi scegli Imposta come set di regole attivo.
  4. Scegli Visualizza set di regole attivo.
  5. Scegli Crea regola.
    Nota: Puoi anche scegliere di aggiornare una regola esistente con gli stessi valori descritti nei passaggi seguenti.
  6. In Definisci impostazioni regole, inserisci le seguenti informazioni:
    Per Nome regola, inserisci un nome per la tua regola.
    Per Stato, seleziona la casella Abilitato per creare la regola come regola attiva. Quindi, scegli Avanti.
  7. Per condizioni dei destinatari, scegli Aggiungi nuova condizione destinatario.
  8. Per condizioni dei destinatari, inserisci gli indirizzi e-mail o i domini associati alla tua identità Amazon SES. Quindi, scegli Avanti.
    Importante: Inserisci l'indirizzo e-mail o il dominio a cui vuoi impedire la ricezione di e-mail da mittenti specifici. Non inserire l'indirizzo e-mail o il dominio da cui vuoi bloccare le e-mail. Ad esempio, se la tua identità Amazon SES utilizza l'indirizzo e-mail "JaneRoe@example.net" e vuoi bloccare le e-mail da "example.com", poi inserisci "JaneRoe@example.net".
  9. Nella schermata Aggiungi azioni, sottoAggiungi nuova azione, seleziona Invoke AWS Lambda function. Inserisci le seguenti informazioni:
    Per la funzione Lambda, seleziona la funzione che hai creato.
    Per il tipo di chiamata, seleziona RequestResponse chiamata.
    (Facoltativo) Configura l'argomento SNS come richiesto dal tuo caso d'uso. In alternativa, puoi lasciare vuoto questo campo. Per ulteriori informazioni su questo campo, consulta l'azione della funzione Invoke Lambda. Quindi, scegli Avanti.
  10. Scegli Crea regola.
    Nota: È possibile che venga visualizzata una finestra di dialogo Autorizzazioni mancanti con il messaggio "SES non è stato in grado di accedere alla risorsa\ [la tua funzione Lambda]." Questo errore indica che Amazon SES necessita di autorizzazioni per la funzione. Scegli Aggiungi autorizzazioni per configurare le autorizzazioni richieste.

Controlla i file di log CloudWatch della funzione

Dopo aver configurato la funzione Lambda e la regola Amazon SES, segui questi passaggi per verificare che le e-mail vengano bloccate:

1.    Apri la console CloudWatch.

2.    Dal pannello di navigazione, sotto Log, scegli Gruppi di log.

3.    Dall'elenco dei gruppi di log, scegli il gruppo di log della tua funzione Lambda. Ad esempio, scegli /aws/lambda/name_of_your_function.

4.    Sotto Log stream, scegli il flusso di log che desideri controllare. Il flusso di log mostra i messaggi di posta elettronica e i domini elaborati dalla funzione Lambda. Sarà simile al seguente esempio:

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

Informazioni correlate

Guida introduttiva a Lambda

Controllo basato sul destinatario mediante regole di ricezione

AWS UFFICIALE
AWS UFFICIALEAggiornata 8 mesi fa