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.
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 EC2 Amazon-Instance, die in Amazon Virtual Private Cloud (Amazon VPC) gehostet wird. Die Nachricht bleibt im AWS Netzwerk, ohne über das öffentliche Internet zu gelangen. 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 EC2 Amazon-Instance an und veröffentlichen Sie eine Nachricht privat zu 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 Ihren AWS-Konto Ressourcen verbleiben.
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 EC2 Amazon-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 AWS PrivateLink betrieben werden. Wenn diese Verbindung hergestellt ist, können Sie sich bei der EC2 Amazon-Instance anmelden und Nachrichten zum Amazon SNS-Thema veröffentlichen, obwohl das Netzwerk vom öffentlichen Internet getrennt ist. Das Thema verteilt die Nachrichten, die es empfängt, 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 Sie ein EC2 Amazon-Schlüsselpaar
Ein key pair wird verwendet, um sich bei einer EC2 Amazon-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 key pair, um sich bei einer EC2 Amazon-Instance anzumelden. 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 Management Console und öffnen Sie die EC2 Amazon-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-KeyPair
ein. 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 eine Erweiterung von
.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
chmod
fest, 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 AWS Ressourcen
Um die Infrastruktur einzurichten, verwenden Sie eine AWS CloudFormation Vorlage. Eine Vorlage ist eine Datei, die als Vorlage für die Erstellung von AWS Ressourcen wie EC2 Amazon-Instances und Amazon SNS-Themen dient. Die Vorlage für diesen Prozess steht Ihnen GitHub zum Herunterladen zur Verfügung.
Sie stellen die Vorlage zur Verfügung und stellen AWS CloudFormation die Ressourcen AWS 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 AWS 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 EC2 Amazon-Instance, die im Subnetz in der VPC gestartet wird.
-
Amazon SNS-Thema.
-
Zwei Funktionen AWS Lambda . 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 EC2 Amazon-Instance ermöglicht, Amazon SNS zu verwenden, und eine IAM-Rolle, die es den Lambda-Funktionen ermöglicht, in Protokolle zu schreiben. CloudWatch
Um die Ressourcen zu erstellen AWS
-
Laden Sie die Vorlagendatei
von der GitHub Website herunter. -
Melden Sie sich an der AWS CloudFormation -Konsole
an. -
Wählen Sie Stapel 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-Stack
ein. -
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.
-
-
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 AWS CloudFormation möglicherweise IAM-Ressourcen mit benutzerdefinierten Namen erstellt werden.
-
Wählen Sie Create (Erstellen) aus.
Die AWS 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: Stellen Sie sicher, dass Ihre EC2 Amazon-Instance keinen Internetzugang hat
Der EC2 Amazon-Instance, die im vorherigen Schritt in Ihrer VPC gestartet wurde, fehlt der 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.
So stellen Sie eine Verbindung zu Ihrer EC2 Amazon-Instance her
-
Öffnen Sie die EC2 Amazon-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 Instances VPCE- Tutorial-EC2Instance aus.
-
Kopieren Sie den Hostnamen, der in der Spalte Public DNS (IPv4) 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-hostname
handelt es sich um den Hostnamen, den Sie von der EC2 Amazon-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.com
Da 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 --region
aws-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. Nachdem Sie den Endpunkt hinzugefügt haben, können Sie sich bei der EC2 Amazon-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 Close (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
Da Ihre VPC nun einen Endpunkt für Amazon SNS enthält, können Sie sich bei der EC2 Amazon-Instance anmelden und Nachrichten zum Thema veröffentlichen.
So veröffentlichen Sie eine Nachricht
-
Wenn Ihr Terminal nicht mehr mit Ihrer EC2 Amazon-Instance verbunden ist, stellen Sie erneut eine Verbindung 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 --region
aws-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: Hello
enthä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 the /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 AWS CloudFormation Konsole löschen. Wenn Sie einen Stapel löschen, AWS 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 AWS CloudFormation Stapel zu löschen
-
Öffnen Sie die AWS 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.