Wie kann ich E-Mails von bestimmten Domains oder E-Mail-Adressen in Amazon SES blockieren?

Lesedauer: 6 Minute
0

Ich möchte nicht, dass meine Amazon Simple Email Service (Amazon SES)-Identität E-Mails von einer bestimmten Domain oder E-Mail-Adresse empfängt.

Kurzbeschreibung

Um zu verhindern, dass bestimmte Domains oder E-Mail-Adressen E-Mails an Ihre Amazon SES-Identität senden, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie einer AWS-Lambda-Funktion. Konfigurieren Sie die Funktion, um eingehende E-Mails zu verarbeiten, den Absender auszuwerten und die Nachricht zu verwerfen, wenn der Absender mit einer bestimmten Domain oder E-Mail-Adresse übereinstimmt.
  2. Erstellen Sie eine Amazon-SES-Empfangsregel, die alle eingehenden E-Mails an die Lambda-Funktion weiterleitet.
  3. Überprüfen Sie die Amazon CloudWatch-Protokolle der Funktion, um sicherzustellen, dass die E-Mails blockiert sind.

Hinweis: Wenn Sie die Lambda-Aktion in der Amazon-SES-Empfangsregel hinzufügen, fallen Gebühren für Amazon SES und Lambda an.

Behebung

Erstellen einer Lambda-Funktion

1.Öffnen Sie die AWS-Lambda-Konsole. Wählen Sie die AWS-Region aus, die Sie für Amazon SES verwenden. Die Lambda-Funktion muss sich in der Region befinden, die Sie mit Amazon SES verwenden. Weitere Informationen finden Sie unter Lambda-Funktionsaktion aufrufen.

2.    Wählen Sie Funktion erstellen aus.

3.Wählen Sie Autor von Grund auf neu aus.

4.Geben Sie unter Funktionsname den Namen Ihrer Funktion ein. Geben Sie beispielsweise „SESReceiptRule“ ein.

  1. Wählen Sie für Laufzeit eine Sprache für Ihre Funktion aus. Node.js 14.x ist in diesem Beispiel ausgewählt.

  2. Wählen Sie unter Architektur eine Architektur für Ihren Funktionscode aus.

7.Erweitern Sie unter Berechtigungen die Option **Standardausführungsrolle ändern **.

8.Wählen Sie unter Ausführungsrolle die Option Eine neue Rolle mit grundlegenden Lambda-Berechtigungen erstellen aus.

9.    Wählen Sie Funktion erstellen aus.

  1. Geben Sie im Abschnitt Codequelle auf der Registerkarte index.js den folgenden Code ein:
// 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.Geben Sie unter Umgebungsvariablen für Schlüssel die Zeichenfolge „blockingList“ ein.
Hinweis: Die Anzahl der Umgebungsvariablen, die Sie erstellen können, ist unbegrenzt. Die Gesamtgröße des Sets darf 4 KB nicht überschreiten. Weitere Informationen finden Sie unter AWS Lambda-Umgebungsvariablen verwenden.

12.Geben Sie unter Wert für „blockingList“ eine durch Kommas getrennte Liste der E-Mail-Adressen und Domains ein, die Sie blockieren möchten. (beispielsweise „example.com, JohnDoe@example.com“).
Hinweis: Sie müssen den Lambda-Funktionscode nicht ändern, um die Liste der E-Mail-Adressen und Domains zu bearbeiten.

  1. Wählen Sie Datei aus und dann Speichern.

Erstellen einer Amazon-SES-Empfangsregel

  1. Öffnen Sie die Amazon SES-Konsole.
  2. Wählen Sie im Navigationsbereich E-Mail-Empfang aus.
  3. Wenn Sie die Regel einem vorhandenen aktiven Regelsatz hinzufügen möchten, fahren Sie mit Schritt 4 fort. Um einen neuen Regelsatz zu erstellen, wählen Sie Einen Regelsatz erstellen aus, geben Sie einen Namen für den Regelsatz ein und wählen Sie anschließend noch einmal Einen Regelsatz erstellen aus.
    Hinweis: Wenn Sie einen neuen Regelsatz erstellen, müssen Sie den Regelsatz und anschließend die Option Als aktiven Regelsatz festlegen auswählen.
  4. Wählen Sie Aktiven Regelsatz anzeigen aus.
  5. Wählen Sie Regel erstellen aus.
    Hinweis: Sie können auch eine bereits vorhandene Regel mit den Werten aktualisieren, die in den folgenden Schritten beschrieben werden.
  6. Geben Sie unter Regeleinstellungen definieren die folgenden Informationen ein:
    Geben Sie unter Regelname einen Namen für Ihre Regel ein.
    Markieren Sie für Status das Kästchen Aktiviert, um die Regel als aktive Regel zu erstellen. Wählen Sie dann Weiter aus.
  7. Wählen Sie für Empfängerbedingungen die Option Neue Empfängerbedingung hinzufügen aus.
  8. Geben Sie unter Empfängerbedingung die E-Mail-Adressen oder Domains ein, die mit Ihrer Amazon SES-Identität verknüpft sind. Wählen Sie dann Weiter aus.
    Wichtig: Geben Sie die E-Mail-Adresse oder Domain ein, die keine E-Mails von bestimmten Absendern erhalten soll. Geben Sie nicht die E-Mail-Adresse oder Domain ein, deren E-Mails Sie blockieren möchten. Wenn Ihre Amazon-SES-Identität also beispielsweise die E-Mail-Adresse „JaneRoe@example.net“ verwendet und Sie E-Mails von „example.com“ blockieren möchten, geben Sie „JaneRoe@example.net“ ein.
  9. Wählen Sie auf dem Bildschirm Aktionen hinzufügen unter Neue Aktion hinzufügen die Option AWS Lambda-Funktion aufrufen aus. Geben Sie folgende Informationen ein:
    Wählen Sie unter Lambda-Funktion die Funktion aus, die Sie erstellt haben.
    Wählen Sie unter Aufruftyp die Option Anforderungsantwort-Aufruf aus.
    (Optional) Konfigurieren Sie das SNS-Thema so, wie es Ihr Anwendungsfall erfordert. Sie können dieses Feld aber auch leer lassen. Weitere Informationen zu diesem Feld finden Sie unter Lambda-Funktionsaktion aufrufen. Wählen Sie dann Weiter aus.
  10. Wählen Sie Regel erstellen aus.
    Hinweis: Möglicherweise wird ein Dialogfeld mit Fehlenden Berechtigungen mit der Meldung „SES konnte nicht auf die Ressource [Ihre Lambda-Funktion] zugreifen“ angezeigt. Dieser Fehler bedeutet, dass Amazon SES Berechtigungen für die Funktion benötigt. Sie können Berechtigungen hinzufügen auswählen, um die erforderlichen Berechtigungen zu konfigurieren.

CloudWatch-Logs der Funktion überprüfen

Gehen Sie nach der Einrichtung der Lambda-Funktion und der Amazon-SES-Regel wie folgt vor, um die blockierten E-Mails zu überprüfen:

1.Öffnen Sie die CloudWatch-Konsole.

2.    Wählen Sie im Navigationsbereich unter Protokolle die Option Protokollgruppen aus.

3.Wählen Sie aus der Liste der Protokollgruppen die Protokollgruppe Ihrer Lambda-Funktion aus. Beispielsweise /aws/lambda/name_of_your_function.

  1. Wählen Sie unter Protokollstreams den Protokollstream aus, den Sie überprüfen möchten. Der Protokollstream zeigt die E-Mail-Nachrichten und Domains an, die die Lambda-Funktion verarbeitet. Sie sieht dem folgenden Beispiel ähnlich:
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

Ähnliche Informationen

Erste Schritte mit Lambda

Empfängerbasierte Steuerung mithilfe von Empfangsregeln

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 6 Monaten