

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 messaggio Amazon SNS da Amazon VPC
<a name="sns-vpc-tutorial"></a>

In questa sezione viene descritto come pubblicare in un argomento Amazon SNS mantenendo i messaggi protetti in una rete privata. Puoi pubblicare un messaggio da un'istanza Amazon EC2 ospitata in Amazon Virtual Private Cloud (Amazon VPC). Il messaggio rimane all'interno della AWS rete senza viaggiare sulla rete Internet pubblica. Per pubblicare messaggi privatamente da un VPC, è possibile migliorare la sicurezza del traffico tra le applicazioni e Amazon SNS. Questa sicurezza è importante quando si pubblicano informazioni personali identificabili (PII) sui tuoi clienti oppure quando l'applicazione è soggetta a normative di mercato. Ad esempio, la pubblicazione in privato è utile se si tratta di un sistema sanitario che deve rispettare l'Health Insurance Portability and Accountability Act (HIPAA) o di un sistema finanziario che deve essere conforme al Payment Card Industry Data Security Standard (PCI DSS).

La procedura generale da seguire è riportata di seguito:
+ Usa un AWS CloudFormation modello per creare automaticamente una rete privata temporanea nel tuo Account AWS.
+ Creare un endpoint VPC che collega VPC con Amazon SNS.
+ Accedere a un'istanza Amazon EC2 e pubblicare un messaggio in privato a un argomento Amazon SNS.
+ Verificare che il messaggio sia stato consegnato correttamente.
+ Elimina le risorse che hai creato durante questo processo in modo che non rimangano nel tuo Account AWS.

Il diagramma seguente illustra la rete privata che crei nel tuo AWS account durante il completamento di questi passaggi:

![\[L'architettura della rete privata creata con questa procedura.\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-architecture.png)


Questa rete è costituita da un VPC che contiene un'istanza Amazon EC2. L'istanza si collega a Amazon SNS; attraverso un *endpoint VPC di interfaccia*. Questo tipo di endpoint si connette a servizi alimentati da. AWS PrivateLink Con questa connessione stabilita, puoi accedere all'istanza Amazon EC2 e pubblicare messaggi all'argomento Amazon SNS, 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.

**Topics**
+ [Prima di iniziare](#sns-vpc-prereqs)
+ [Fase 1: creazione di una coppia di chiavi](#sns-vpc-keypair)
+ [Fase 2: Creazione delle risorse](#sns-vpc-resources)
+ [Fase 3: controllo della connessione a Internet per l'istanza](#sns-vpc-connection)
+ [Fase 4: creazione di un endpoint](#sns-vpc-endpoint)
+ [Fase 5: pubblicazione di un messaggio](#sns-vpc-publish)
+ [Fase 6: verifica](#sns-vpc-verify)
+ [Fase 7: pulire](#sns-vpc-delete)
+ [Risorse correlate](#sns-vpc-resources-related)

## Prima di iniziare
<a name="sns-vpc-prereqs"></a>

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 Amazon VPC. Se non hai già creato un account, vai a [https://aws.amazon.com/](https://aws.amazon.com/), quindi scegli **Crea un account gratuito**.

## Fase 1: Creazione di una coppia di chiavi di Amazon EC2
<a name="sns-vpc-keypair"></a>

Una *coppia di chiavi* viene utilizzata per effettuare l'accesso a un'istanza Amazon EC2. È 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, una coppia di chiavi viene utilizzata per effettuare l'accesso a un'istanza Amazon EC2. Per effettuare l'accesso, è necessario specificare il nome della coppia di chiavi e fornire la chiave privata.

**Per creare la coppia di chiavi**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nel menu di navigazione a sinistra, individua la sezione **Network & Security (Rete e sicurezza)**. Quindi scegli **Key Pairs (Coppie di chiavi)**.

1. Scegli **Crea coppia di chiavi**.

1. 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)**.  
![\[La finestra Crea coppia di chiavi con il testo «VPCE-Tutorial-KeyPair" nel campo Nome della coppia di chiavi.\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-key-pair.png)

1. Il file della chiave privata viene automaticamente scaricato dal browser. Salvalo in un posto sicuro. Amazon EC2 assegna al file un'estensione `.pem`. 

1. (Facoltativo) Se usi un client SSH su un computer Mac o Linux per connetterti alla tua istanza, usa il comando `chmod` per impostare le autorizzazioni del file della chiave privata in modo da essere l'unico a poterlo leggere:

   1. Apri un terminale e vai alla directory che contiene la chiave privata: 

      ```
      $ cd /filepath_to_private_key/
      ```

   1. Imposta le autorizzazioni utilizzando il comando seguente:

      ```
      $ chmod 400 VPCE-Tutorial-KeyPair.pem
      ```

## Fase 2: Creare le risorse AWS
<a name="sns-vpc-resources"></a>

Per configurare l'infrastruttura, si utilizza un CloudFormation *modello*. Un modello è un file che funge come schema per la creazione di risorse AWS , come istanze Amazon EC2 e argomenti Amazon SNS. Il modello per questo processo è disponibile GitHub e può essere scaricato. 

Fornisci il modello e fornisci CloudFormation le risorse di cui hai bisogno come *pila* del tuo Account AWS. CloudFormation Uno stack è una raccolta di risorse che puoi gestire come un'unità singola. Una volta completati questi passaggi, puoi 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:
+ Un VPC e le risorse di rete associate, tra cui una sottorete, un gruppo di sicurezza, un gateway Internet e una tabella di routing.
+ Un'istanza Amazon EC2; avviata nella sottorete nel VPC.
+ Argomento Amazon SNS
+ Due AWS Lambda funzioni. Queste funzioni ricevono messaggi pubblicati sull'argomento Amazon SNS e registrano gli eventi in CloudWatch Logs.
+  CloudWatch Metriche e log di Amazon.
+ Un ruolo IAM che consente all'istanza Amazon EC2 di utilizzare Amazon SNS e un ruolo IAM che consente alle funzioni Lambda di scrivere nei log. CloudWatch 

**Per creare le risorse AWS**

1. Scarica il [file modello](https://github.com/aws-samples/aws-sns-samples/blob/master/templates/SNS-VPCE-Tutorial-CloudFormation.template) dal GitHub sito Web.

1. Accedi alla [console CloudFormation](https://console.aws.amazon.com/cloudformation).

1. Scegli **Create Stack** (Crea stack).

1. 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).

1. Nella pagina **Specify Details (Specifica dettagli)**, specifica i nomi dello stack e della chiave:

   1. Per **Stack name (Nome stack)**, digitare **VPCE-Tutorial-Stack**.

   1. Per **KeyName**, scegli **VPCE-Tutorial** -. KeyPair

   1. Per **SSHLocation**, mantieni il valore predefinito di. **0.0.0.0/0**  
![\[La pagina Specificare i dettagli visualizza i campi con valori compilati per il nome dello stack, KeyName, e. SSHLocation\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-stack-name.png)

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Options (Opzioni)**, lascia tutti i valori predefiniti e scegli **Next (Avanti)**.

1. Nella pagina **Review (Rivedi)**, verifica i dettagli dello stack.

1. In **Capacità**, riconosci che CloudFormation potrebbe creare risorse IAM con nomi personalizzati.

1. Scegli **Create** (Crea).

   La CloudFormation console apre la pagina **Stacks**. Lo VPCE-Tutorial-Stack stato è **CREATE\$1IN\$1PROGRESS**. Dopo pochi minuti, quando il processo di creazione è stato completato, lo stato diventa **CREATE\$1COMPLETE**.  
![\[Lo CloudFormation stack con lo stato CREATE_COMPLETE.\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-stack-create-complete.png)
**Suggerimento**  
Scegli il pulsante **Refresh (Aggiorna)** per visualizzare l'ultimo stato dello stack.

## Fase 3: Conferma che l'istanza Amazon EC2; non dispone di accesso Internet
<a name="sns-vpc-connection"></a>

L'istanza Amazon EC2 che è stata avviata nel VPC nella fase precedente non dispone di accesso a Internet. Non consente il traffico in uscita e non è in grado di pubblicare messaggi a Amazon SNS. Verifica accedendo all'istanza. Quindi, prova a connetterti a un endpoint pubblico e ad inviare un messaggio a Amazon SNS.

A questo punto della procedura il tentativo di pubblicazione ha esito negativo. In un secondo momento, dopo aver creato un endpoint VPC per Amazon SNS il tentativo di pubblicazione va a buon fine.

**Eseguire la connessione all'istanza di Amazon EC2.**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel menu di navigazione a sinistra, individua la sezione **Instances (Istanze)**. Quindi scegli **Instances (Istanze)**.

1. Nell'elenco delle istanze, selezionare **VPCE** -. Tutorial-EC2Instance

1. **Copia il nome host fornito nella colonna DNS pubblico.**  
![\[Dettagli sull'istanza Amazon EC2 lanciata da. CloudFormation\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-instance-details.png)

1. Apri un terminale. Dalla directory che contiene la coppia di key pair, connettiti all'istanza utilizzando il seguente comando, *instance-hostname* dov'è il nome host che hai copiato dalla console Amazon EC2:

   ```
   $ 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\$1C in Windows o Comando\$1C su macOS).

**Per verificare che l'istanza non dispone di una connessione a Amazon SNS**

1. Accedi alla [console Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Nel menu di navigazione a sinistra, scegli **Topics (Argomenti)**.

1. Nella pagina **Topics (Argomenti)**, copia l'Amazon Resource Name (ARN) per l'argomento **VPCE-Tutorial-Topic**.

1. Nel terminale, tenta di pubblicare un messaggio all'argomento:

   ```
   $ aws sns publish --region aws-region --topic-arn sns-topic-arn --message "Hello"
   ```

   Poiché il tentativo di pubblicazione ha esito negativo, è possibile annullare in qualsiasi momento.

## Fase 4: Creazione di un endpoint Amazon VPC per Amazon SNS
<a name="sns-vpc-endpoint"></a>

Per collegare il tuo VPC a Amazon SNS, definisci un endpoint VPC dell'interfaccia. Dopo aver aggiunto l'endpoint, è possibile accedere all'istanza Amazon EC2 nel proprio VPC, quindi è possibile utilizzare l'API di Amazon SNS. È 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**

1. Apri la console Amazon VPC all'indirizzo [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Nel menu di navigazione a sinistra, scegli **Endpoints**.

1. Scegliere **Create Endpoint** (Crea endpoint).

1. Nella pagina **Crea endpoint**, per **Categoria di servizio** lascia la scelta predefinita di **AWS Servizi**.

1. Per **Nome servizio**, scegli il nome del servizio per Amazon SNS;.

   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.**

1. Per **VPC**, scegli il VPC che ha il nome **VPCE-Tutorial-VPC**.  
![\[Il menu VPC nella pagina Create Endpoint (Crea endpoint).\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-create-endpoint-vpc.png)

1. Per **Subnets (Sottoreti)**, scegli la sottorete che ha *VPCE-Tutorial-Subnet* nell'ID della sottorete.  
![\[Le sottoreti nella pagina Create Endpoints (Crea endpoint).\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-create-endpoint-subnet.png)

1. Per **Enable Private DNS Name (Abilita nome DNS privato)**, seleziona **Enable for this endpoint (Abilita per questo endpoint)**.

1. Per il **gruppo di sicurezza**, scegli **Seleziona gruppo di sicurezza** e scegli **VPCE-Tutorial** -. SecurityGroup  
![\[I gruppi di sicurezza nella pagina Create Endpoints (Crea endpoint).\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-create-endpoint-security-group.png)

1. Seleziona **Crea endpoint**. La console Amazon VPC conferma che è stato creato un endpoint VPC.  
![\[Il messaggio di conferma visualizzato dopo aver creato un endpoint.\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-create-endpoint-confirmation.png)

1. Scegli **Chiudi**. 

   La console Amazon VPC 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)**.  
![\[L'endpoint VPC con stato disponibile.\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-create-endpoint-status-available.png)

## Fase 5: Pubblicazione di un messaggio nel proprio argomento Amazon SNS
<a name="sns-vpc-publish"></a>

Ora che il VPC include un endpoint per Amazon SNS, può possibile accedere all'istanza Amazon EC2 e pubblicare messaggi nell'argomento.

**Per pubblicare un messaggio**

1. Se il terminale non è più connesso all'istanza Amazon EC2, effettuare nuovamente il collegamento:

   ```
   $ ssh -i VPCE-Tutorial-KeyPair.pem ec2-user@instance-hostname
   ```

1. Eseguire lo stesso comando eseguito precedentemente per pubblicare un messaggio nel proprio argomento Amazon SNS. Questa volta, il tentativo di pubblicazione va a buon fine e Amazon SNS; restituisce un ID messaggio:

   ```
   $ aws sns publish --region aws-region --topic-arn sns-topic-arn --message "Hello"
   
   
   {
       "MessageId": "5b111270-d169-5be6-9042-410dfc9e86de"
   }
   ```

## Fase 6: verifica delle consegne del messaggio
<a name="sns-vpc-verify"></a>

Quando l'argomento Amazon SNS riceve un messaggio, distribuisce il messaggio inviandolo alle due funzioni Lambda di sottoscrizione. Quando queste funzioni ricevono il messaggio, registrano l'evento CloudWatch nei registri. 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**

1. Apri la console all' AWS Lambda indirizzo. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Nella pagina **Functions (Funzioni)**, scegli **VPCE-Tutorial-Lambda-1**.

1. Selezionare **Monitoring (Monitoraggio)**.

1. 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.  
![\[Il grafico del conteggio invocazioni nella console Lambda.\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-lambda-invocation-count.png)

**Per verificare che i CloudWatch registri siano stati aggiornati**

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel menu di navigazione a sinistra, scegli **Logs**.

1. Controlla i log scritti dalle funzioni Lambda:

   1. Scegli il gruppo di log**/aws/lambda/VPCE-Tutorial-Lambda-1/**.

   1. Scegli il flusso di log.

   1. Verifica che il log includa la voce `From SNS: Hello`.  
![\[Il CloudWatch registro include la voce «From SNS: Hello».\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/images/vpce-tutorial-cloudwatch-log.png)

   1. 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 il gruppo di log/aws/lambda/VPCE-Tutorial-Lambda-2/.

Complimenti\$1 Aggiungendo un endpoint per Amazon SNS a un VPC, è possibile pubblicare un messaggio in un argomento all'interno della rete gestita dal VPC. Il messaggio è stato pubblicato privatamente senza essere esposto sulla rete Internet pubblica.

## Fase 7: pulire
<a name="sns-vpc-delete"></a>

Se non si desidera conservare le risorse create, è possibile eliminarle ora. Eliminando AWS le risorse che non utilizzi più, eviti addebiti inutili a tuo carico. Account AWS

In primo luogo, elimina l'endpoint VPC utilizzando la console Amazon VPC. Quindi, elimina le altre risorse che hai creato eliminando lo stack nella console. CloudFormation Quando elimini uno stack, CloudFormation rimuove le risorse dello stack dal tuo. Account AWS

**Per eliminare l'endpoint VPC**

1. Apri la console Amazon VPC all'indirizzo [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Nel menu di navigazione a sinistra, scegli **Endpoints**.

1. Seleziona l'endpoint creato.

1. Scegli **Actions (Operazioni)**, quindi **Delete Endpoint (Elimina endpoint)**.

1. 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 stack CloudFormation**

1. Apri la CloudFormation console in [https://console.aws.amazon.com/cloudformazione.](https://console.aws.amazon.com/cloudformation/)

1. Selezionare lo stack **VPCE-Tutorial-Stack**.

1. Scegliere **Actions (Operazioni)**, quindi **Delete Stack (Elimina stack)**.

1. Nella finestra **Delete Stack (Elimina stack)**, scegli **Yes, Delete (Sì, elimina)**.

   Lo stato dello stack diventa **DELETE\$1IN\$1PROGRESS**. Quando l'eliminazione viene completata, lo stack viene rimosso dalla pagina.

## Risorse correlate
<a name="sns-vpc-resources-related"></a>

Per ulteriori informazioni, consulta le risorse seguenti.
+ [AWS Blog sulla sicurezza: Protezione dei messaggi pubblicati su Amazon SNS con AWS PrivateLink ](https://aws.amazon.com/blogs/security/securing-messages-published-to-amazon-sns-with-aws-privatelink/)
+ [What Is Amazon VPC?](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html)
+ [Endpoint VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)
+ [Che cos'è Amazon EC2?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)
+ [Concetti di CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html)