Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Pubblicazione di un SNS messaggio Amazon da Amazon VPC
Questa sezione descrive come pubblicare su un SNS argomento Amazon mantenendo i messaggi al sicuro in una rete privata. Pubblichi un messaggio da un'EC2istanza Amazon ospitata in Amazon Virtual Private Cloud (AmazonVPC). Il messaggio rimane all'interno della AWS rete senza viaggiare sulla rete Internet pubblica. Pubblicando messaggi in privato da unVPC, puoi migliorare la sicurezza del traffico tra le tue applicazioni e AmazonSNS. Questa sicurezza è importante quando pubblichi informazioni di identificazione personale (PII) sui tuoi clienti o quando la tua applicazione è soggetta alle normative di mercato. Ad esempio, la pubblicazione privata è utile se si dispone di un sistema sanitario che deve essere conforme all'Health Insurance Portability and Accountability Act (HIPAA) o un sistema finanziario che deve essere conforme al Payment Card Industry Data Security Standard (). PCI DSS
La procedura generale da seguire è riportata di seguito:
-
Utilizza un AWS CloudFormation modello per creare automaticamente una rete privata temporanea nel tuo. Account AWS
-
Crea un VPC endpoint che li connetta VPC con AmazonSNS.
-
Accedi a un'EC2istanza Amazon e pubblica un messaggio privato su un SNS argomento Amazon.
-
Verificare che il messaggio sia stato consegnato correttamente.
-
Elimina le risorse che hai creato durante questo processo in modo che non rimangano nelle tue Account AWS.
Il diagramma seguente illustra la rete privata che crei nel tuo AWS account durante il completamento di questi passaggi:

Questa rete è composta da una VPC che contiene un'EC2istanza Amazon. L'istanza si connette ad Amazon SNS tramite un VPCendpoint di interfaccia. Questo tipo di endpoint si connette a servizi alimentati da. AWS PrivateLink Una volta stabilita questa connessione, puoi accedere all'EC2istanza Amazon e pubblicare messaggi SNS sull'argomento Amazon, anche se la rete è disconnessa dalla rete Internet pubblica. L'argomento suddivide i messaggi che riceve in due funzioni di sottoscrizione AWS Lambda . Queste funzioni registrano i messaggi che ricevono in Amazon CloudWatch Logs.
Per completare questi passaggi occorrono circa 20 minuti.
Argomenti
Prima di iniziare
Prima di iniziare è necessario un account Amazon Web Services (AWS). Quando ti registri, il tuo account viene automaticamente registrato per tutti i servizi in AWS, inclusi Amazon SNS e AmazonVPC. Se non hai già creato un account, vai a https://aws.amazon.com/
Fase 1: creare una coppia di EC2 chiavi Amazon
Una coppia di key pair viene utilizzata per accedere a un'EC2istanza Amazon. È costituita da una chiave pubblica utilizzata per crittografare le informazioni di accesso e una chiave privata utilizzata per decifrarle. Quando crei una coppia di chiavi, viene scaricata una copia della chiave privata. Successivamente, utilizzi la key pair per accedere a un'EC2istanza Amazon. Per effettuare l'accesso, è necessario specificare il nome della coppia di chiavi e fornire la chiave privata.
Per creare la coppia di chiavi
Accedi a AWS Management Console e apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/
. -
Nel menu di navigazione a sinistra, individua la sezione Network & Security (Rete e sicurezza). Quindi scegli Key Pairs (Coppie di chiavi).
-
Scegli Crea coppia di chiavi.
-
Nella finestra Create Key Pair (Crea coppia di chiavi), per Key pair name (Nome coppia di chiavi), digita
VPCE-Tutorial-KeyPair
. Quindi scegli Create (Crea). -
Il file della chiave privata viene automaticamente scaricato dal browser. Salvalo in un posto sicuro. Amazon EC2 fornisce al file un'estensione di
.pem
. -
(Facoltativo) Se utilizzi un SSH client su un computer Mac o Linux per connetterti alla tua istanza, usa il
chmod
comando per impostare le autorizzazioni del tuo file di chiave privata in modo che solo tu possa leggerlo:-
Apri un terminale e vai alla directory che contiene la chiave privata:
$
cd /
filepath_to_private_key
/ -
Imposta le autorizzazioni utilizzando il comando seguente:
$
chmod 400 VPCE-Tutorial-KeyPair.pem
-
Fase 2: Creare le risorse AWS
Per configurare l'infrastruttura, si utilizza un AWS CloudFormation modello. Un modello è un file che funge da modello per la creazione di AWS risorse, come EC2 istanze Amazon e argomenti AmazonSNS. Il modello per questo processo è disponibile GitHub e può essere scaricato.
Fornisci il modello e fornisci AWS CloudFormation le risorse di cui hai bisogno come pila del tuo Account AWS. AWS CloudFormation Uno stack è una raccolta di risorse che puoi gestire come un'unità singola. Una volta completati questi passaggi, puoi AWS CloudFormation eliminare tutte le risorse dello stack contemporaneamente. Queste risorse non rimangono nelle tue mani Account AWS, a meno che tu non voglia che lo facciano.
Lo stack per questa procedura include le seguenti risorse:
-
A VPC e le risorse di rete associate, tra cui una sottorete, un gruppo di sicurezza, un gateway Internet e una tabella di routing.
-
Un'EC2istanza Amazon lanciata nella sottorete in. VPC
-
Un SNS argomento di Amazon.
-
Due AWS Lambda funzioni. Queste funzioni ricevono messaggi pubblicati SNS sull'argomento Amazon e registrano gli eventi in CloudWatch Logs.
-
CloudWatch Metriche e log di Amazon.
-
Un IAM ruolo che consente all'EC2istanza Amazon di utilizzare Amazon SNS e un IAM ruolo che consente alle funzioni Lambda di scrivere CloudWatch nei log.
Per creare le risorse AWS
-
Scaricate il file modello
dal GitHub sito Web. -
Accedere alla console AWS CloudFormation
. -
Scegli Create Stack (Crea stack).
-
Nella pagina Select Template (Scegli modello), scegli Upload a template to Amazon S3 (Carica un modello in Amazon S3), scegli il file, quindi scegli Next (Avanti).
-
Nella pagina Specify Details (Specifica dettagli), specifica i nomi dello stack e della chiave:
-
Per Stack name (Nome stack), digitare
VPCE-Tutorial-Stack
. -
Per KeyName, scegli VPCE-Tutorial-. KeyPair
-
Per SSHLocation, mantieni il valore predefinito di.
0.0.0.0/0
-
Scegli Next (Successivo).
-
-
Nella pagina Options (Opzioni), lascia tutti i valori predefiniti e scegli Next (Avanti).
-
Nella pagina Review (Rivedi), verifica i dettagli dello stack.
-
In Capacità, riconosci che AWS CloudFormation potrebbe creare IAM risorse con nomi personalizzati.
-
Scegli Create (Crea) .
La AWS CloudFormation console apre la pagina Stacks. Lo VPCE-Tutorial-Stack stato è CREATEPROGRESS_IN_. Dopo pochi minuti, una volta completato il processo di creazione, lo stato diventa _. CREATE COMPLETE
Suggerimento
Scegli il pulsante Refresh (Aggiorna) per visualizzare l'ultimo stato dello stack.
Passaggio 3: verifica che la tua EC2 istanza Amazon non abbia accesso a Internet
L'EC2istanza Amazon che è stata lanciata VPC nel passaggio precedente non ha accesso a Internet. Non consente il traffico in uscita e non è in grado di pubblicare messaggi su Amazon. SNS Verifica accedendo all'istanza. Quindi, prova a connetterti a un endpoint pubblico e prova a inviare un messaggio ad AmazonSNS.
A questo punto della procedura il tentativo di pubblicazione ha esito negativo. In una fase successiva, dopo aver creato un VPC endpoint per AmazonSNS, il tentativo di pubblicazione ha esito positivo.
Per connetterti alla tua EC2 istanza Amazon
-
Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/
. -
Nel menu di navigazione a sinistra, individua la sezione Instances (Istanze). Quindi scegli Instances (Istanze).
-
Nell'elenco delle istanze, seleziona VPCE- Tutorial-EC2Instance.
-
Copia il nome host fornito nella colonna Public DNS (IPv4).
-
Apri un terminale. Dalla directory che contiene la key pair, connettiti all'istanza utilizzando il seguente comando, dove
instance-hostname
è il nome host che hai copiato dalla console AmazonEC2:$
ssh -i VPCE-Tutorial-KeyPair.pem ec2-user@
instance-hostname
Per verificare che l'istanza non dispone di una connessione a Internet
-
Nel terminale, tenta di connetterti a un endpoint pubblico, ad esempio amazon.com:
$
ping amazon.com
Poiché il tentativo di connessione ha esito negativo, è possibile annullare in qualsiasi momento (Ctrl+C in Windows o Comando+C su macOS).
Per verificare che l'istanza non disponga di connettività ad Amazon SNS
-
Accedi alla SNSconsole Amazon
. -
Nel menu di navigazione a sinistra, scegli Topics (Argomenti).
-
Nella pagina Argomenti, copia Amazon Resource Name (ARN) per l'argomento VPCE-Tutorial-Topic.
-
Nel terminale, tenta di pubblicare un messaggio all'argomento:
$
aws sns publish --region
aws-region
--topic-arnsns-topic-arn
--message "Hello"Poiché il tentativo di pubblicazione ha esito negativo, è possibile annullare in qualsiasi momento.
Fase 4: creare un VPC endpoint Amazon per Amazon SNS
Per connetterlo VPC ad AmazonSNS, definisci un VPC endpoint di interfaccia. Dopo aver aggiunto l'endpoint, puoi accedere all'EC2istanza Amazon del tuo VPC dispositivo e da lì puoi utilizzare Amazon SNSAPI. È possibile pubblicare messaggi all'argomento che vengono pubblicati privatamente. Rimangono all'interno della AWS rete e non viaggiano sulla rete Internet pubblica.
Nota
L'istanza non ha ancora accesso ad altri AWS servizi ed endpoint su Internet.
Per creare l'endpoint
-
Apri la VPC console Amazon all'indirizzo https://console.aws.amazon.com/vpc/
. -
Nel menu di navigazione a sinistra, scegli Endpoints.
-
Scegliere Create Endpoint (Crea endpoint).
-
Nella pagina Crea endpoint, per Categoria di servizio lascia la scelta predefinita di AWS Servizi.
-
Per Service Name, scegli il nome del servizio per AmazonSNS.
I nomi dei servizi variano in base alla regione scelta. Ad esempio, se hai scelto Stati Uniti orientali (Virginia settentrionale), il nome del servizio è com.amazonaws.
us-east-1
.sns. -
Per VPC, scegli VPC quello che ha il nome VPCE-Tutorial -. VPC
-
Per le sottoreti, scegli la sottorete che ha VPCE-Tutorial-Subnet nell'ID della sottorete.
-
Per Abilita nome privato, seleziona Abilita per questo endpoint. DNS
-
Per Gruppo di sicurezza, scegli Seleziona gruppo di sicurezza e scegli VPCE-Tutorial-. SecurityGroup
-
Seleziona Crea endpoint. La VPC console Amazon conferma che è stato creato un VPC endpoint.
-
Scegli Chiudi.
La VPC console Amazon apre la pagina Endpoints. Il nuovo endpoint ha lo stato pending (in sospeso). Dopo pochi minuti, quando il processo di creazione è stato completato, lo stato diventa available (disponibile).
Passaggio 5: pubblica un messaggio sul tuo SNS argomento Amazon
Ora che hai VPC incluso un endpoint per AmazonSNS, puoi accedere all'EC2istanza Amazon e pubblicare messaggi sull'argomento.
Per pubblicare un messaggio
-
Se il tuo terminale non è più connesso alla tua EC2 istanza Amazon, riconnettiti:
$
ssh -i VPCE-Tutorial-KeyPair.pem ec2-user@
instance-hostname
-
Esegui lo stesso comando che hai usato in precedenza per pubblicare un messaggio sul tuo SNS argomento Amazon. Questa volta, il tentativo di pubblicazione ha esito positivo e Amazon SNS restituisce un ID messaggio:
$
aws sns publish --region
aws-region
--topic-arnsns-topic-arn
--message "Hello"{ "MessageId": "5b111270-d169-5be6-9042-410dfc9e86de" }
Fase 6: verifica delle consegne del messaggio
Quando l'SNSargomento Amazon riceve un messaggio, lo distribuisce inviandolo alle due funzioni Lambda sottoscritte. Quando queste funzioni ricevono il messaggio, registrano l'evento nei log. CloudWatch Per verificare che il recapito del messaggio sia avvenuto correttamente, verifica che le funzioni siano state richiamate e verifica che i CloudWatch registri siano stati aggiornati.
Per verificare che le funzioni Lambda; siano state richiamate
-
Apri la console all' AWS Lambda indirizzo. https://console.aws.amazon.com/lambda/
-
Nella pagina Funzioni, scegli VPCE-Tutorial-Lambda-1.
-
Selezionare Monitoring (Monitoraggio).
-
Controlla il grafico Invocation count (Conteggio invocazioni). Questo grafico mostra il numero di volte che la funzione Lambda; è stata eseguita.
Il conteggio di invocazioni corrisponde al numero di volte in cui è stato pubblicato un messaggio all'argomento.
Per verificare che i registri siano stati aggiornati CloudWatch
-
Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/
. -
Nel menu di navigazione a sinistra, scegli Logs.
-
Controlla i log scritti dalle funzioni Lambda:
-
Scegli il gruppo di log/aws/lambda/VPCE-Tutorial-Lambda-1/.
-
Scegli il flusso di log.
-
Verifica che il log includa la voce
From SNS: Hello
. -
Scegli Log Groups (Gruppi di log) nella parte superiore della console per tornare alla pagina Log Groups (Gruppi di log). Quindi, ripeti i passaggi precedenti per the /aws/lambda/VPCE -Tutorial-Lambda-2/ log group.
-
Complimenti! Aggiungendo un endpoint per Amazon SNS aVPC, sei stato in grado di pubblicare un messaggio su un argomento dall'interno della rete gestita da. VPC Il messaggio è stato pubblicato privatamente senza essere esposto sulla rete Internet pubblica.
Fase 7: pulire
Se non si desidera conservare le risorse create, è possibile eliminarle ora. Eliminando AWS le risorse che non utilizzi più, eviti addebiti inutili ai tuoi. Account AWS
Innanzitutto, elimina il tuo VPC endpoint utilizzando la VPC console Amazon. Quindi, elimina le altre risorse che hai creato eliminando lo stack nella console. AWS CloudFormation Quando elimini uno stack, AWS CloudFormation rimuove le risorse dello stack dal tuo. Account AWS
Per eliminare il tuo endpoint VPC
-
Apri la VPC console Amazon all'indirizzo https://console.aws.amazon.com/vpc/
. -
Nel menu di navigazione a sinistra, scegli Endpoints.
-
Seleziona l'endpoint creato.
-
Scegli Actions (Operazioni), quindi Delete Endpoint (Elimina endpoint).
-
Nella finestra Delete Endpoint (Elimina endpoint), scegli Yes, Delete (Sì, elimina).
Lo stato dell'endpoint diventa deleting (in eliminazione). Quando l'eliminazione viene completata, l'endpoint viene rimosso dalla pagina.
Per eliminare il tuo AWS CloudFormation stack
-
Apri la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformazione.
-
Seleziona lo stack -Tutorial-Stack. VPCE
-
Scegliere Actions (Operazioni), quindi Delete Stack (Elimina stack).
-
Nella finestra Delete Stack (Elimina stack), scegli Yes, Delete (Sì, elimina).
Lo stato dello stack cambia in _IN_. DELETE PROGRESS Quando l'eliminazione viene completata, lo stack viene rimosso dalla pagina.
Risorse correlate
Per ulteriori informazioni, consulta le risorse seguenti.