Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Veröffentlichen einer Amazon SNS Nachricht aus Amazon VPC
In diesem Abschnitt erfahren Sie, wie Sie ein Amazon SNS Amazon SNS-Thema veröffentlichen und gleichzeitig die Nachrichten in einem privaten Netzwerk geschützt halten. Sie veröffentlichen eine Nachricht von einer Amazon EC2 Instance, die in Amazon Virtual Private Cloud (Amazon VPC) gehostet wird. Die Nachricht bleibt im AWS Netzwerk, ohne dass sie über das öffentliche Internet übertragen wird. Durch die private Veröffentlichung von Nachrichten von einer VPC aus können Sie die Sicherheit des Datenverkehrs zwischen Ihren Anwendungen und Amazon SNS verbessern. Diese Sicherheit ist wichtig, wenn Sie personenbezogene Informationen (PII) über Ihre Kunden veröffentlichen oder wenn Ihre Anwendung Marktregulierungen unterliegt. Beispiel: Die private Veröffentlichung ist hilfreich bei einem Gesundheitssystem, das den Health Insurance Portability and Accountability Act (HIPAA) erfüllen muss, oder bei einem Finanzsystem, das den Payment Card Industry Data Security Standard (PCI DSS) erfüllen muss.
Gehen Sie wie folgt vor:
-
Verwenden Sie eine AWS CloudFormation Vorlage, um automatisch ein temporäres privates Netzwerk in Ihrem zu erstellen AWS-Konto.
-
Erstellen Sie einen VPC-Endpunkt, der die VPC mit Amazon SNS verbindet.
-
Melden Sie sich bei einer Amazon EC2-Instance an und veröffentlichen Sie eine Nachricht privat in einem Amazon SNS-Thema.
-
Vergewissern Sie sich, dass die Nachricht erfolgreich zugestellt wurde.
-
Löschen Sie die Ressourcen, die Sie während dieses Vorgangs erstellt haben, damit sie nicht in Ihrem verbleiben AWS-Konto.
Das folgende Diagramm zeigt das private Netzwerk, das Sie in Ihrem AWS Konto erstellen, wenn Sie diese Schritte ausführen:
Dieses Netzwerk besteht aus einer VPC, die eine Amazon-EC2-Instance enthält. Die Instance stellt über einen Schnittstellen-VPC-Endpunkt eine Verbindung mit Amazon SNS her. Dieser Endpunkttyp stellt eine Verbindung zu Diensten her, die von bereitgestellt werden. AWS PrivateLink Nach dem Herstellen dieser Verbindung können Sie sich bei der Amazon-EC2-Instance anmelden und Nachrichten im Amazon SNS-Thema veröffentlichen, auch wenn das Netzwerk nicht mit dem öffentlichen Internet verbunden ist. Das Thema verteilt die Nachrichten, die es erhält, auf zwei AWS Lambda Abonnementfunktionen. Diese Funktionen protokollieren die Nachrichten, die sie erhalten, in Amazon CloudWatch Logs.
Es dauert ungefähr 20 Minuten, bis diese Schritte fertig ausgeführt sind.
Bevor Sie beginnen
Bevor Sie beginnen, benötigen Sie einen Amazon Web Services (AWS)-Konto. Wenn Sie sich registrieren, wird Ihr Konto automatisch für alle Dienste angemeldet AWS, einschließlich Amazon SNS und Amazon VPC. Wenn Sie nicht bereits ein Konto erstellt haben, wechseln Sie zu https://aws.amazon.com/
Schritt 1: Erstellen eines Amazon EC2-Schlüsselpaares
Ein Schlüsselpaar wird verwendet, um sich an einer Amazon EC2-Instance anzumelden. Es besteht aus einem öffentlichen Schlüssel zum Verschlüsseln Ihrer Anmeldeinformationen und einem privaten Schlüssel zum Entschlüsseln. Wenn Sie ein Schlüsselpaar erstellen, laden eine Kopie des privaten Schlüssels herunter. Später verwenden Sie das Schlüsselpaar zum Anmelden an einer Amazon EC2 Instance. Zum Anmelden geben Sie den Namen des Schlüsselpaares und den privaten Schlüssel an.
So erstellen Sie ein Schlüsselpaar
Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon EC2 EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Suchen Sie im Navigationsmenü auf der linken Seite den Abschnitt Network & Security (Netzwerk und Sicherheit). Wählen Sie dann Key Pairs (Schlüsselpaare).
-
Wählen Sie Create Key Pair aus.
-
Geben Sie im Fenster Create Key Pair (Schlüsselpaar erstellen) für Key pair name (Schlüsselpaar-Name) den Wert
VPCE-Tutorial-KeyPairein. Wählen Sie dann die Option Erstellen.
-
Die private Schlüsseldatei wird von Ihrem Browser automatisch runtergeladen. Bewahren Sie es an einem sicheren Ort auf. Amazon EC2 gibt der Datei die Erweiterung
.pem. -
(Optional) Wenn Sie einen SSH-Client auf Ihrem Mac- oder Linux-Computer verwenden, um eine Verbindung mit der Instance herzustellen, legen Sie die Berechtigungen für die private Schlüsseldatei mit dem Befehl
chmodfest, sodass nur Sie diese lesen können:-
Öffnen Sie ein Terminal und navigieren Sie zu dem Verzeichnis, das den privaten Schlüssel enthält:
$cd /filepath_to_private_key/ -
Legen Sie mit folgendem Befehl die Berechtigungen fest:
$chmod 400 VPCE-Tutorial-KeyPair.pem
-
Schritt 2: Erstellen Sie die Ressourcen AWS
Um die Infrastruktur einzurichten, verwenden Sie eine CloudFormation Vorlage. Bei einer Vorlage handelt es sich um eine Datei, die als Vorlage für die Erstellung von AWS -Ressourcen dient, wie z. B. Amazon EC2-Instances und Amazon SNS-Themen. Die Vorlage für diesen Prozess steht Ihnen GitHub zum Herunterladen zur Verfügung.
Sie stellen die Vorlage zur Verfügung und stellen CloudFormation die Ressourcen CloudFormation, die Sie benötigen, als Stapel in Ihrem bereit AWS-Konto. Bei einem Stack handelt es sich um eine Sammlung von Ressourcen, die Sie als einzelne Einheit verwalten. Wenn Sie diese Schritte abgeschlossen haben, können Sie CloudFormation damit alle Ressourcen im Stack auf einmal löschen. Diese Ressourcen verbleiben nicht in Ihrem AWS-Konto, es sei denn, Sie möchten, dass sie es tun.
Der Stack für dieses Tutorial enthält die folgenden Ressourcen:
-
Eine VPC und die zugehörigen Netzwerkressourcen, einschließlich eines Subnetzes, einer Sicherheitsgruppe, eines Internet-Gateways und einer Routing-Tabelle.
-
Eine Amazon EC2-Instance, die im Subnetz in der VPC gestartet wird.
-
Amazon SNS-Thema.
-
Zwei AWS Lambda Funktionen. Diese Funktionen empfangen Nachrichten, die im Amazon SNS SNS-Thema veröffentlicht werden, und protokollieren Ereignisse in CloudWatch Logs.
-
CloudWatch Amazon-Metriken und -Protokolle.
-
Eine IAM-Rolle, die es der Amazon EC2 EC2-Instance ermöglicht, Amazon SNS zu verwenden, und eine IAM-Rolle, die es den Lambda-Funktionen ermöglicht, in Protokolle zu schreiben. CloudWatch
Um AWS die Ressourcen zu erstellen
-
Laden Sie die Vorlagendatei
von der GitHub Website herunter. -
Melden Sie sich bei der CloudFormation -Konsole
an. -
Wählen Sie Stack erstellen aus.
-
Wählen Sie auf der Seite Select Template (Vorlage auswählen) die Option Upload a template to Amazon S3 (Eine Vorlage zu Amazon S3 hochladen) aus. Wählen Sie dann Ihre Datei und Next (Weiter) aus.
-
Geben Sie auf der Seite Specify Details (Details angeben) Stack- und Schlüsselnamen an:
-
Geben Sie für Stack name
VPCE-Tutorial-Stackein. -
Wählen Sie für KeyNameVPCE-Tutorial -. KeyPair
-
Behalten Sie für SSHLocationden Standardwert von bei.
0.0.0.0/0
-
Wählen Sie Weiter aus.
-
-
Behalten Sie auf der Seite Options (Optionen) alle Standardwerte bei, und wählen Sie dann Next (Weiter).
-
Überprüfen Sie die Einstellungen auf der Seite Review (Überprüfen) die Stack-Details.
-
Bestätigen Sie unter Funktionen, dass CloudFormation möglicherweise IAM-Ressourcen mit benutzerdefinierten Namen erstellt werden.
-
Wählen Sie Erstellen aus.
Die CloudFormation Konsole öffnet die Seite Stacks. Der VPCE-Tutorial-Stack hat den Status CREATE_IN_PROGRESS. Nach Abschluss des Erstellungsprozesses ändert sich der Status in wenigen Minuten in CREATE_COMPLETE.
Tipp
Wählen Sie die Schaltfläche Refresh (Aktualisieren), um den neuesten Stack-Status zu sehen.
Schritt 3: Bestätigen Sie, dass Ihre Amazon EC2-Instance über keinen Internetzugang verfügt
Die im vorherigen Schritt in Ihrer VPC gestartete Amazon EC2-Instance hat keinen Internetzugang. Sie verbietet ausgehenden Datenverkehr und kann keine Nachrichten in Amazon SNS veröffentlichen. Überprüfen Sie dies, indem Sie sich bei der Instance anmelden. Anschließend versuchen Sie, eine Verbindung zu einem öffentlichen Endpunkt herzustellen, und versuchen, eine Nachricht an Amazon SNS zu senden.
An diesem Punkt schlägt der Veröffentlichungsversuch fehl. In einem späteren Schritt nach dem Erstellen eines VPC-Endpunkts für Amazon SNS ist der Veröffentlichungsversuch erfolgreich.
Stellen Sie eine Verbindung zu Ihrer Amazon EC2-Instance her
-
Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Suchen Sie im Navigationsmenü auf der linken Seite den Abschnitt Instances. Wählen Sie anschließend Instances.
-
Wählen Sie in der Liste der Instanzen VPCE - aus. Tutorial-EC2Instance
-
Kopieren Sie den Hostnamen, der in der Spalte Public DNS angegeben ist.
-
Öffnen Sie ein -Terminalfenster. Stellen Sie von dem Verzeichnis aus, das das key pair enthält, mithilfe des folgenden Befehls eine Verbindung zur Instance her. Dabei
instance-hostnamehandelt es sich um den Hostnamen, den Sie von der Amazon EC2 EC2-Konsole kopiert haben:$ssh -i VPCE-Tutorial-KeyPair.pem ec2-user@instance-hostname
So überprüfen Sie, ob die Instance eine Verbindung zum Internet hat
-
Versuchen Sie in Ihrem Terminal, eine Verbindung mit einem öffentlichen Endpunkt herzustellen, wie z. B. amazon.com:
$ping amazon.comDa der Verbindungsversuch fehlschlägt, können Sie ihn jederzeit stornieren (Strg+C unter Windows oder Befehl+C unter macOS).
Überprüfen, dass die Instance keine Verbindung zu Amazon SNS hat
-
Melden Sie sich bei der Amazon SNS-Konsole
an. -
Wählen Sie im Navigationsmenü auf der linken Seite Topics (Themen) aus.
-
Kopieren Sie auf der Seite Topics (Themen) den Amazon-Ressourcennamen (ARN) für das Thema VPCE-Tutorial-Topic.
-
Versuchen Sie in Ihrem Terminal eine Nachricht an das Thema zu veröffentlichen:
$aws sns publish --regionaws-region--topic-arnsns-topic-arn--message "Hello"Da der Veröffentlichungsversuch fehlschlägt, können Sie ihn jederzeit abbrechen.
Schritt 4: Erstellen eines Amazon VPC-Endpunkts für Amazon SNS
Zum Herstellen einer Verbindung der VPC mit Amazon SNS definieren Sie einen Schnittstellen-VPC-Endpunkt. Nach dem Hinzufügen des Endpunkts können Sie sich bei der Amazon EC2-Instance in Ihrer VPC anmelden und von dort aus die Amazon SNS-API verwenden. Sie können Nachrichten in dem Thema veröffentlichen. Die Nachrichten werden privat veröffentlicht. Sie bleiben im AWS Netzwerk und nutzen nicht das öffentliche Internet.
Anmerkung
Der Instanz fehlt immer noch der Zugriff auf andere AWS Dienste und Endpunkte im Internet.
So erstellen Sie den Endpunkt
-
Öffnen Sie die Amazon-VPC-Konsole unter https://console.aws.amazon.com/vpc/
. -
Wählen Sie im Navigationsmenü auf der linken Seite Endpoints (Endpunkte) aus.
-
Klicken Sie auf Endpunkt erstellen.
-
Behalten Sie auf der Seite Create Endpoint (Endpunkt erstellen) für Service category (Servicekategorie) die Standardauswahl von AWS Services bei.
-
Wählen Sie für Service Name (Service-Name) den Service-Namen für Amazon SNS.
Die Servicenamen variieren abhängig von der ausgewählten Region. Wenn Sie beispielsweise US East (Nord-Virginia) ausgewählt haben, lautet der Dienstname com.amazonaws.
us-east-1.sns. -
Wählen Sie für VPC die VPC mit dem Namen VPCE-Tutorial-VPC.
-
Wählen Sie unter Subnets (Subnetze) die Subnetze aus, deren Subnetz-ID VPCE-Tutorial-Subnet enthält.
-
Wählen Sie für Enable Private DNS Name (Privaten DNS-Namen aktivieren) die Option Enable for this endpoint (Für diesen Endpunkt aktivieren) aus.
-
Wählen Sie für Sicherheitsgruppe die Option Sicherheitsgruppe auswählen und anschließend VPCE-Tutorial - aus. SecurityGroup
-
Wählen Sie Endpunkt erstellen aus. Die Amazon VPC-Konsole bestätigt, dass ein VPC-Endpunkt erstellt wurde.
-
Klicken Sie auf Schließen.
Die Amazon-VPC-Konsole öffnet die Seite Endpunkte. Der neue Endpunkt weist den Status pending (ausstehend) auf. Nach Abschluss des Erstellungsprozesses ändert sich der Status in wenigen Minuten in available (verfügbar).
Schritt 5: Veröffentlichen einer Nachricht in Ihrem Amazon SNS-Thema
Jetzt, da Ihre VPC einen Endpunkt für Amazon SNS umfasst, können Sie sich an der Amazon EC2-Instance anmelden und Nachrichten im Thema veröffentlichen.
So veröffentlichen Sie eine Nachricht
-
Falls Ihr Terminal nicht mehr mit Ihrer Amazon EC2-Instance verbunden ist, stellen Sie die Verbindung wieder her:
$ssh -i VPCE-Tutorial-KeyPair.pem ec2-user@instance-hostname -
Führen Sie den gleichen Befehl aus wie zuvor, um eine Nachricht in Ihrem Amazon SNS-Thema zu veröffentlichen. Dieses Mal ist der Veröffentlichungsversuch erfolgreich und Amazon SNS gibt eine Mitteilungs-ID zurück:
$aws sns publish --regionaws-region--topic-arnsns-topic-arn--message "Hello"{ "MessageId": "5b111270-d169-5be6-9042-410dfc9e86de" }
Schritt 6: Überprüfen Sie die Zustellung Ihrer Nachrichten
Wenn das Amazon SNS-Thema eine Nachricht empfängt, wird die Nachricht durch Senden an die zwei Lambda-Funktionen mit Abonnement verbreitet. Wenn diese Funktionen die Nachricht erhalten, protokollieren sie das Ereignis in CloudWatch Protokollen. Um zu überprüfen, ob die Nachrichtenzustellung erfolgreich war, überprüfen Sie, ob die Funktionen aufgerufen wurden, und überprüfen Sie, ob die CloudWatch Protokolle aktualisiert wurden.
So überprüfen Sie, dass die Lambda-Funktionen aufgerufen wurden
-
Öffnen Sie die AWS Lambda Konsole unter. https://console.aws.amazon.com/lambda/
-
Wählen Sie auf der Seite Functions (Funktionen) die Option VPCE-Tutorial-Lambda-1.
-
Wählen Sie Monitoring.
-
Überprüfen Sie das Diagramm Invocation count (Anzahl der Aufrufe). Dieses Diagramm zeigt die Anzahl der Ausführungen der Lambda-Funktion.
Die Anzahl der Aufrufe entspricht der Anzahl der Veröffentlichungen einer Nachricht im Thema.
Um zu überprüfen, ob die CloudWatch Protokolle aktualisiert wurden
-
Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/
. -
Wählen Sie im Navigationsmenü links Logs (Protokolle).
-
Überprüfen Sie die Protokolle, die von den Lambda-Funktionen geschrieben wurden:
-
Wählen Sie die Loggruppe/aws/lambda/VPCE-Tutorial-Lambda-1/.
-
Wählen Sie den Protokollstream.
-
Prüfen Sie, dass das Protokoll den Eintrag
From SNS: Helloenthält.
-
Wählen Sie Log Groups (Protokollgruppen) oben auf der Konsole, um zur Seite Log Groups (Protokollgruppen) zurückzukehren. Wiederholen Sie dann die vorherigen Schritte für die Protokollgruppe/aws/lambda/VPCE-Tutorial-Lambda-2/.
-
Herzlichen Glückwunsch! Durch das Hinzufügen eines Endpunkts für Amazon SNS zu einer VPC konnten Sie eine Nachricht in einem Thema innerhalb des Netzwerks veröffentlichen, das von der VPC verwaltet wird. Die Nachricht wurde privat veröffentlicht, ohne im Internet veröffentlicht zu werden.
Schritt 7: Bereinigen
Sofern Sie die Ressourcen, die Sie für dieses Tutorial erstellt haben, nicht behalten möchten, können Sie sie nun löschen. Durch das Löschen von AWS Ressourcen, die Sie nicht mehr verwenden, vermeiden Sie unnötige Kosten für Ihre AWS-Konto.
Löschen Sie zuerst Ihren VPC-Endpunkt mithilfe der Amazon VPC-Konsole. Löschen Sie anschließend die anderen Ressourcen, die Sie erstellt haben, indem Sie den Stack in der CloudFormation Konsole löschen. Wenn Sie einen Stapel löschen, CloudFormation werden die Ressourcen des Stacks aus Ihrem entfernt AWS-Konto.
So löschen Sie Ihren VPC-Endpunkt
-
Öffnen Sie die Amazon-VPC-Konsole unter https://console.aws.amazon.com/vpc/
. -
Wählen Sie im Navigationsmenü auf der linken Seite Endpoints (Endpunkte) aus.
-
Wählen Sie den Endpunkt aus, den Sie erstellt haben.
-
Wählen Sie Actions (Aktionen) und anschließend Delete Endpoint (Endpunkt löschen).
-
Wählen Sie im Fenster Delete Endpoint (Endpunkt löschen) Yes, Delete (Ja, löschen).
Der Status des Endpunkts wird in deleting (Wird gelöscht...) geändert. Wenn der Löschvorgang abgeschlossen ist, wird der Endpunkt von der Seite entfernt.
Um deinen CloudFormation Stapel zu löschen
-
Öffnen Sie die CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie den Stack VPCE-Tutorial-Stack aus.
-
Wählen Sie die Option Actions (Aktionen) und anschließend Delete Stack (Stack löschen) aus.
-
Wählen Sie im Fenster Delete Stack (Stack löschen) Yes, Delete (Ja, löschen).
Der Stack-Status ändert sich in DELETE_IN_PROGRESS. Wenn der Löschvorgang abgeschlossen ist, wird der Stack von der Seite entfernt.
Zugehörige Ressourcen
Weitere Informationen finden Sie in den folgenden Ressourcen.