Wie verhindere ich unbeabsichtigte oder nicht autorisierte E-Mail-Abmeldungen von meinem Amazon SNS-Thema?
Ich habe eine E-Mail-Adresse für mein Amazon Simple Notification Service (Amazon SNS)-Thema abonniert. Dann habe ich eine Bestätigung per E-Mail erhalten, dass ich mich erfolgreich von meinem SNS-Thema abgemeldet hätte, was ich nicht autorisiert hatte.
Kurzbeschreibung
Wenn du Nachrichten zu einem Amazon SNS-Thema mit E-Mail-Abonnenten veröffentlichst, enthält die E-Mail-Nachricht, die die Abonnenten erhalten, einen Link zum Abmelden. Die Meldung lautet: „Wenn du keine Benachrichtigungen zu diesem Thema mehr erhalten möchtest, klicke oder besuche den unten stehenden Link, um sich abzumelden.“
Abmeldeaktionen können unbeabsichtigt durch automatisierte Systeme wie E-Mail-Sicherheitsscanner oder Spamfilter ausgelöst werden. Diese automatisierten Systeme öffnen Links in eingegangenen E-Mails zur Überprüfung und können dabei versehentlich den Abmelde-Link für den E-Mail-Abonnenten aktivieren.
Abmeldeaktionen können auch erfolgen, wenn ein E-Mail-Mitglied, Abonnenten einer Amazon SNS-Themen-Mailingliste, den Link zum Abbestellen wählt. Diese Aktion meldet die E-Mail-Adresse von der Mailingliste ab. Dann erhält jeder auf der Mailingliste eine Nachricht mit der „Abmeldebestätigung“.
Um unbeabsichtigte oder unbefugte Abmeldungen zu verhindern, erstelle ein Abonnement, für dessen Abmeldung eine Authentifizierung erforderlich ist. Aufgrund dieser Authentifizierungsanforderung für Abonnements können nur der Themeninhaber und der Abonnementinhaber das Abonnement abmelden. Alle anderen Abonnenten, die den Link wählen, erhalten die folgende Meldung:
„Your subscription could not be removed because of an error. If you wish to unsubscribe but do not have AWS credentials, or have any other questions about Amazon SNS, please contact Amazon at sns-question@amazon.com.“
Lösung
Um ein vorhandenes E-Mail-Abonnement durch ein Abonnement zu ersetzen, das eine Authentifizierung erfordert, kündige das bestehende Abonnement. Verwende dann die Amazon SNS-Konsole oder die AWS Command Line Interface (AWS CLI), um ein neues E-Mail-Abonnement zu erstellen.
Wichtig: Du musst Zugriff auf die E-Mail-Nachricht mit der Abonnementbestätigung haben, um ein neues Abonnement zu bestätigen und die Einrichtung abzuschließen. Wenn du eine Mailingliste für das Thema abonnierst, füge zuerst die E-Mail-Adresse zur Mailingliste hinzu, um das Abonnement zu bestätigen.
Verwende die Amazon SNS-Konsole, um ein E-Mail-Abonnement einzurichten, für das eine Authentifizierung erforderlich ist, um das Abonnement zu kündigen
Führe die folgenden Schritte aus:
- Öffne die Amazon SNS-Konsole und abonniere dann die E-Mail-Adresse für das Thema.
- In der E-Mail findest du die Nachricht mit der Abonnementbestätigung von AWS Notifications. Der Absender ist in der Regel no-reply@sns.amazonaws.com.
Wichtig: Verwende nicht den Link in der Abonnementbestätigungs-E-Mail, um das Abonnement zu bestätigen. - Kopiere die URL vom Link Abonnement bestätigen.
- Wähle im Navigationsbereich der Konsole Abonnements.
- Wähle auf der Seite Abonnements das Abonnement mit der Aufschrift Bestätigung ausstehend aus und wähle dann Abonnement bestätigen.
- Füge im Dialogfeld Abonnement bestätigen die URL zur Abonnementbestätigung ein, die du in Schritt 3 kopiert hast.
- Wähle Abonnement bestätigen.
Richte in der AWS CLI ein E-Mail-Abonnement ein, für dessen Abmeldung eine Authentifizierung erforderlich ist
Führe die folgenden Schritte aus:
Hinweis: Wenn du beim Ausführen von AWS CLI-Befehlen Fehler erhältst, siehe Fehlerbehebung für die AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
- Um eine Liste der Amazon SNS-Themen abzurufen, führe den folgenden Befehl list-topics aus:
Hinweis: Ersetze region us-east-1 durch die AWS-Region für das Thema.aws sns list-topics --region us-east-1 - Kopiere in der Ausgabe den Themenwert des Amazon-Ressourcennames (ARN) des Themas, das du abonnieren möchtest. Der ARN-Wert des Themas sieht ähnlich wie folgt aus: arn:aws:sns:us-east- 1:012345678901:my-topic
- Um ein Amazon SNS-Thema zu abonnieren und als Endpunkt zu erhalten, führe den folgenden Befehl subscribe aus:
Hinweis: Ersetze topic-arn durch den Themen-ARN, das du in Schirtt 2 kopiert hast. Ersetze notification-endpoint durch die E-Mail-Adresse, mit der du das Thema abonnieren möchtest. Ersetzeus-east-1 durch die Region deines Themas.aws sns subscribe --topic-arn arn:aws:sns:us-east-1:012345678901:my-topic --protocol email --notification-endpoint test@amazon.com --region us-east-1 - Kopiere die URL aus dem Link Abonnement bestätigen, füge die URL in einen Texteditor ein und kopiere dann das Token. Das Token ist eine lange Reihe von Zahlen und Buchstaben in der Mitte der URL nach Token= und vor**&Endpoint=**. Diese URL sieht in etwa wie folgt aus:
https://sns.us-east-1.amazonaws.com/confirmation.html?TopicArn=arn:aws:sns:us-east-1:123456789012:my-topic&Token=2336412f37fb687f5d51e6e241da92fcfd03593fd8dfa4bd75978a2ad7255afb88e71028f6a034d06f469f6c7ef20a609348542a0c68a9561c03a39d59beb02e2b7112c45f7ae26c344819b39cf07f15bef6c6c09766f9caa1fa55c236e77c33a50870bc027c74640ff64a7e99a67117&Endpoint=test@amazon.com - Führe den folgenden Befehl confirm-subscription aus, um das Abonnement-Token zu überprüfen:
Hinweis: Ersetze your-topic-arn durch den Thema-ARN, die du zuvor kopiert hast, und your-token durch das Token, das du kopiert hast.aws sns confirm-subscription --topic-arn your-topic-arn --token your-token --authenticate-on-unsubscribe true
Bestätige, dass die Abonnementanfrage erfolgreich authentifiziert wurde
Führe den folgenden get-subscription-attributes-Befehl aus, um zu bestätigen, dass das Abonnement authentifiziert wurde:
aws sns get-subscription-attributes --subscription-arn your-subscription-arn
Hinweis: Ersetze your-subscription-arn durch deinen Abonnement-ARN.
Beispielausgabe:
{ "Attributes": { "SubscriptionPrincipal": "arn:aws:iam:: 123456789012:role/Admin", "Owner": "123456789012", "RawMessageDelivery": "false", "TopicArn": "arn:aws:sns:us-east-1:123456789012:mytopic", "Endpoint": "test@testmail.com", "Protocol": "email", "PendingConfirmation": "false", "ConfirmationWasAuthenticated": "true", "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:mytopic:8a21d249-4329-4871-acc6-7be709c6ea7f " } }
Wenn die Antwort auf das Attribut ConfirmationWasAuthenticated true lautet, wurde die Abonnementanfrage erfolgreich authentifiziert.
- Themen
- Application Integration
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 8 Monaten