

AWS Blockchain Templates è stato interrotto il 30 aprile 2019. Non verranno effettuati ulteriori aggiornamenti a questo servizio o alla presente documentazione di supporto. Per la migliore esperienza di Managed Blockchain su AWS, ti consigliamo di utilizzare [Amazon Managed Blockchain (AMB)](https://aws.amazon.com/managed-blockchain/). Per ulteriori informazioni su come iniziare a usare Amazon Managed Blockchain, consulta il nostro [workshop su Hyperledger Fabric](https://catalog.us-east-1.prod.workshops.aws/workshops/008da2cb-8454-42d0-877b-bc290bff7fcf/en-US) o il nostro [blog sull'implementazione di un](https://aws.amazon.com/blogs/database/deploy-an-ethereum-node-on-amazon-managed-blockchain/) nodo Ethereum. Se hai domande su AMB o hai bisogno di ulteriore assistenza, [contatta o contatta Supporto](https://console.aws.amazon.com/support/home#/case/create?issueType=technical) il team del tuo account. AWS 

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

# Prerequisiti di installazione
<a name="blockchain-template-getting-started-prerequisites"></a>

La configurazione di AWS Blockchain Template per Ethereum specificata in questo tutorial richiede quanto segue:
+ [Creazione di un VPC e delle sottoreti](#blockchain-templates-create-a-vpc)
+ [Creazione di gruppi di sicurezza](#blockchain-templates-create-security-group)
+ [Crea un ruolo IAM per Amazon ECS e un profilo di istanza EC2](#blockchain-templates-iam-roles)
+ [Per creare un host bastione](#blockchain-templates-bastion-host)

## Creazione di un VPC e delle sottoreti
<a name="blockchain-templates-create-a-vpc"></a>

Il modello AWS Blockchain per Ethereum lancia le risorse in una rete virtuale definita dall'utente utilizzando Amazon Virtual Private Cloud (Amazon VPC). La configurazione specificata in questo tutorial crea un Application Load Balancer che richiede due sottoreti pubbliche in zone di disponibilità diverse. È inoltre necessaria una sottorete privata per le istanze di container e questa deve trovarsi nella stessa zona di disponibilità dell'Application Load Balancer. Utilizzare innanzitutto la procedura guidata del VPC per creare una sottorete pubblica e una sottorete privata nella stessa zona di disponibilità. Creare quindi una seconda sottorete pubblica all'interno di questo VPC in una zona di disponibilità diversa.

Per ulteriori informazioni, consultare [Che cos'è Amazon VPC?](https://docs.aws.amazon.com/vpc/latest/userguide/) nella *Guida per l'utente di Amazon VPC*

Utilizza la console Amazon VPC ([https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)) per creare l'indirizzo IP elastico, il VPC e la sottorete come descritto di seguito.

**Creazione di un indirizzo IP elastico**

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

1. **Scegli **Elastic IPs**, **Alloca nuovo indirizzo, Alloca**.**

1. Annota l'indirizzo IP elastico (EIP) creato, quindi seleziona **Close (Chiudi)**.

1. Nell'elenco degli indirizzi IP elastici (EIP), trova **Allocation ID (ID Allocazione)** per l'indirizzo IP Elastico (EIP) creato in precedenza. Utilizzalo quando crei il VPC.

**Per creare il VPC**

1. Dalla barra di navigazione, seleziona una regione per il VPC. VPCs sono specifici di una regione, quindi seleziona la stessa regione in cui hai creato la tua key pair e in cui stai lanciando lo stack Ethereum. Per ulteriori informazioni, consulta [Crea una coppia di chiavi](blockchain-templates-setting-up.md#blockchain-templates-create-a-key-pair).

1. Nel pannello di controllo VPC scegli **Start VPC Wizard** (Avvia creazione guidata VPC).

1. Nella pagina **Step 1: Select a VPC Configuration (Fase 1: Seleziona una configurazione VPC)** scegliere **VPC with Public and Private Subnets (VPC con sottoreti pubbliche e private)**, **Select (Seleziona)**.

1. Nella pagina **Passaggio 2: VPC con sottoreti pubbliche e private**, lascia il blocco CIDR e il **blocco IPv4 CIDR** ai valori **IPv6 predefiniti.** Per **VPC name (Nome VPC)** Inserisci un nome descrittivo.

1. Per il ** IPv4 CIDR della sottorete pubblica, lascia il valore predefinito**. Per **Availability Zone (Zona di disponibilità)**, scegli una zona. Per **Public subnet name (Nome sottorete pubblica)**, inserisci un nome descrittivo.

   Specifica questa sottorete come una delle prime due sottoreti per Application Load Balancer quando utilizzi il modello.

   Prendi nota della zona di disponibilità di questa sottorete perché selezionerai la stessa zona di disponibilità per la sottorete privata e una diversa per l'altra sottorete pubblica.

1. Per il ** IPv4 CIDR della sottorete privata**, lascia il valore predefinito. Per **Availability Zone (Zona di disponibilità)**, seleziona la stessa zona di disponibilità della fase precedente. Per **Private subnet name (Nome sottorete privata)**, inserisci un nome descrittivo.

1. In **Elastic IP Allocation ID (ID assegnazione IP elastico)**, seleziona l'indirizzo IP elastico (EIP) creato in precedenza.

1. Lascia le altre impostazioni ai valori predefiniti.

1. Seleziona **Crea VPC**.

   **L'esempio seguente mostra un VPC **EthereumNetworkVPC** con una sottorete pubblica **EthereumPubSub1 e una sottorete privata 1**. EthereumPvtSub** La sottorete pubblica utilizza la zona di disponibilità **us-west-2a**.  
![Modulo di configurazione VPC con dettagli sulla sottorete pubblica e privata per EthereumVPC.](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/VPC.png)

**Per creare la seconda sottorete pubblica in una diversa zona di disponibilità**

1. Scegliere **Subnets (Sottoreti)** quindi selezionare dall'elenco la sottorete pubblica creata in precedenza. Selezionare la scheda **Route Table (Tabella di routing)** e prendere nota dell'ID di **Route Table (Tabella di routing)**. Specificare la stessa tabella di routing per la seconda sottorete pubblica riportata di seguito.

1. Seleziona **Create Subnet (Crea sottorete)**.

1. Per **Name tag (Tag nome)** immettere un nome per la sottorete. Utilizzare questo nome in seguito quando si crea il bastion host in questa rete.

1. In **VPC**, selezionare il VPC creato in precedenza.

1. Per **Availability Zone (Zona di disponibilità)**, selezionare una zona diversa dalla quella selezionata per la prima sottorete pubblica.

1. ****Per IPv4 il blocco CIDR, inserisci 10.0.2.0/24.****

1. Selezionare **Yes, Create (Sì, crea)**. La sottorete viene aggiunta all'elenco delle sottoreti.

1. Con la sottorete selezionata dall'elenco, scegliere **Subnet Actions (Operazioni sottorete)**, **Modify auto-assign IP settings (Modifica impostazioni di assegnazione automatica IP)**. ****Seleziona Assegna **automaticamente IPs**, Salva, Chiudi.**** Ciò consente al bastion host di ottenere un indirizzo IP pubblico quando lo si crea in questa sottorete.

1. Nella scheda **Route Table (Tabella di routing)**, scegliere **Edit (Modifica)**. Per **Change to (Cambia in)**, selezionare l'ID della tabella di routing annotata in precedenza e scegliere **Save (Salva)**.

Ora dovresti vedere tre sottoreti per il VPC che hai creato in precedenza. Prendi nota dei nomi delle sottoreti e IDs in modo da poterli specificare utilizzando il modello.

![Dashboard VPC che mostra tre sottoreti con i relativi intervalli IDs, stati e CIDR. IPv4](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/subnets-listing.png)


## Creazione di gruppi di sicurezza
<a name="blockchain-templates-create-security-group"></a>

I gruppi di sicurezza fungono da firewall, controllando il traffico in entrata e in uscita delle risorse. Quando utilizzi il modello per creare una rete Ethererum su un cluster Amazon ECS, specifichi due gruppi di sicurezza:
+ Un gruppo di sicurezza per le istanze EC2 che controlla il traffico da e verso le istanze EC2 nel cluster
+ Un gruppo di sicurezza per l'Application Load Balancer che controlla il traffico tra l'Application Load Balancer, le istanze EC2 e il bastion host. Questo gruppo di sicurezza viene associato anche al bastion host.

Ogni gruppo di sicurezza ha regole che consentono la comunicazione tra Application Load Balancer e le istanze EC2, nonché altre regole minime. Ciò richiede che i gruppi di sicurezza facciano riferimento l'uno all'altro. Per questo motivo, è necessario prima creare i gruppi di sicurezza e poi aggiornarli con le regole appropriate.

**Per creare due gruppi di sicurezza**

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

1. Nel pannello di navigazione, scegli **Gruppi di sicurezza**, **Crea gruppo di sicurezza**.

1. *Per **Nome del gruppo di sicurezza**, inserisci un nome per il gruppo di sicurezza che sia facile da identificare e che lo differenzi dagli altri, ad esempio *Ethereum EC2 -SG o EthereumALB-SG*.* Utilizzerai questi nomi in seguito. Per **Description (Descrizione)** immetti un breve riepilogo.

1. In **VPC**, selezionare il VPC creato in precedenza.

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

1. Ripeti le fasi precedenti per creare gli altri gruppi di sicurezza.

**Aggiungi le regole in entrata al gruppo di sicurezza per le istanze EC2**

1. Seleziona il gruppo di sicurezza per le istanze EC2 creato in precedenza

1. Nella scheda **Inbound (In entrata)**, selezionare **Edito (Modifica)**.

1. In **Type (Tipo)**, selezionare **All traffic (Tutto il traffico)**. *Per **Sorgente**, lascia selezionato **Personalizzato**, quindi scegli il gruppo di sicurezza che stai modificando attualmente dall'elenco, ad esempio Ethereum -SG. EC2* In questo modo le istanze EC2 nel gruppo di sicurezza possono comunicare l'una con l'altra.

1. Selezionare **Add Rule (Aggiungi regola)**.

1. In **Type (Tipo)**, selezionare **All traffic (Tutto il traffico)**. Per **Source (Origine)**, lascia l'opzione **Custom (Personalizzata)** selezionata, quindi scegli nell'elenco il gruppo di sicurezza dell'Application Load Balancer, ad esempio, *EthereumALB-SG*. In questo modo le istanze EC2 nel gruppo di sicurezza possono comunicare con Application Load Balancer.

1. Scegli **Save** (Salva).

**Aggiungi le regole in entrata e modifica le regole in uscita per il gruppo di sicurezza di Application Load Balancer**

1. Seleziona il gruppo di sicurezza per i sistemi Application Load Balancer creato in precedenza

1. Nella scheda **Inbound (In entrata)** scegli **Edit (Modifica)**, quindi aggiungi le seguenti regole in entrata:

   1. In **Type (Tipo)**, selezionare **All traffic (Tutto il traffico)**. Per **Source (Origine)**, lascia l'opzione **Custom (Personalizzata)** selezionata, quindi scegli nell'elenco il gruppo di sicurezza che stai modificando, ad esempio, *EthereumALB-SG*. Ciò consente all'Application Load Balancer di comunicare con se stesso e con il bastion host.

   1. Selezionare **Add Rule (Aggiungi regola)**.

   1. In **Type (Tipo)**, selezionare **All traffic (Tutto il traffico)**. *Per **Source**, lascia selezionato **Custom**, quindi scegli il gruppo di sicurezza per le istanze EC2 dall'elenco, ad esempio Ethereum -SG. EC2* In questo modo le istanze EC2 nel gruppo di sicurezza possono comunicare con l'Application Load Balancer e con il bastion host.

   1. Selezionare **Add Rule (Aggiungi regola)**.

   1. Per **Type** (Tipo) scegli **SSH**. In **Source (Origine)**, selezionare **My IP (IP personale)**, che rileva il CIDR IP del computer e lo inserisce.
**Importante**  
Questa regola consente al bastion host di accettare il traffico SSH dal computer, consentendo ad esso di utilizzare il bastion host per visualizzare le interfacce Web e connettersi alle istanze EC2 sulla rete Ethereum. Per consentire ad altri utenti di collegarsi alla rete Ethereum, aggiungili come origini a questa regola. Consentire solo il traffico in entrata a origini attendibili.

   1. Scegli **Save** (Salva).

1. Nella scheda **Outbound (In uscita)**, scegli **Edit (Modifica)** ed elimina la regola creata automaticamente per consentire il traffico in uscita su tutti gli indirizzi IP.

1. Selezionare **Add Rule (Aggiungi regola)**.

1. In **Type (Tipo)**, selezionare **All traffic (Tutto il traffico)**. Per **Destination (Destinazione)**, lascia l'opzione **Custom (Personalizzata)** selezionata e quindi scegli dall'elenco il gruppo di sicurezza per le istanze EC2. In questo modo vengono consentite le connessioni in uscita da Application Load Balancer e dal bastion host alle istanze EC2 nella rete Ethereum.

1. Selezionare **Add Rule (Aggiungi regola)**.

1. In **Type (Tipo)**, selezionare **All traffic (Tutto il traffico)**. Per **Destination (Destinazione)**, lascia l'opzione **Custom (Personalizzata)** selezionata, quindi scegli nell'elenco il gruppo di sicurezza che stai modificando, ad esempio, *EthereumALB-SG*. Ciò consente all'Application Load Balancer di comunicare con se stesso e con il bastion host.

1. Scegli **Save** (Salva).

## Crea un ruolo IAM per Amazon ECS e un profilo di istanza EC2
<a name="blockchain-templates-iam-roles"></a>

Quando utilizzi questo modello, specifichi un ruolo IAM per Amazon ECS e un profilo di istanza EC2. Le policy di autorizzazione collegate a questi ruoli consentono alle risorse AWS e alle istanze presenti nel cluster di interagire con altre risorse AWS. Per ulteriori informazioni, consulta [Ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) nella *Guida per l'utente di IAM*. Puoi configurare il ruolo IAM per Amazon ECS e il profilo dell'istanza EC2 utilizzando la console IAM () [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

**Per creare il ruolo IAM per Amazon ECS**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, seleziona **Ruoli**, quindi **Crea nuovo ruolo**.

1. In **Select type of trusted entity** (Seleziona tipo di entità attendibile), scegli **AWS service** (Servizio AWS).

1. In **Choose the service that will use this role (Scegli il servizio che utilizzerà questo ruolo)**, selezionare **Elastic Container Service**.

1. In **Select your use case (Seleziona il tuo caso d'uso)**, seleziona **Elastic Container Service**, **Next:Permissions**.  
![AWS interfaccia console per la creazione di un ruolo, con Elastic Container Service selezionato come caso d'uso.](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/ecs-role.png)

1. Per **Politica di autorizzazione**, lascia selezionata la politica predefinita (**Amazon EC2 ContainerServiceRole**) e scegli **Avanti:Revisione**.

1. Per **Nome del ruolo**, inserisci un valore che ti aiuti a identificare il ruolo, ad esempio. *ECSRoleForEthereum* Per **Role Description (Descrizione ruolo)** immetti un breve riepilogo. Annota il nome del ruolo per dopo.

1. Scegli **Crea ruolo**.

1. Dall'elenco, scegli il ruolo che hai appena creato. Se il tuo account ha molti ruoli, puoi cercare il nome del ruolo.  
![IAM console che mostra ECSRole ForEtherium il ruolo selezionato nell'elenco dei ruoli con filtro di ricerca.](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/ecs-role-list.png)

1. Copia il valore di **Role ARN (ARN ruolo)** e salvalo in modo che sia possibile copiarlo di nuovo. Hai bisogno di questo ARN quando crei la rete Ethereum.  
![AWS IAM pagina di riepilogo del ruolo che mostra l'ARN del ruolo, la descrizione e le politiche allegate.](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/ecs-role-arn.png)

Il profilo dell'istanza EC2 specificato nel modello viene utilizzato dalle istanze EC2 nella rete Ethereum per interagire con altri servizi. AWS Puoi creare una policy di autorizzazione per il ruolo, creare il ruolo (che crea automaticamente un profilo dell'istanza con lo stesso nome) e quindi collegare la policy di autorizzazione al ruolo.

**Per creare un profilo dell'istanza EC2**

1. Nel riquadro di navigazione, seleziona **Policy**, quindi **Crea policy**.

1. Scegli **JSON** e sostituisci l'istruzione predefinita della policy con la seguente policy JSON:

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ecs:CreateCluster",
                   "ecs:DeregisterContainerInstance",
                   "ecs:DiscoverPollEndpoint",
                   "ecs:Poll",
                   "ecs:RegisterContainerInstance",
                   "ecs:StartTelemetrySession",
                   "ecs:Submit*",
                   "ecr:GetAuthorizationToken",
                   "ecr:BatchCheckLayerAvailability",
                   "ecr:GetDownloadUrlForLayer",
                   "ecr:BatchGetImage",
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "dynamodb:BatchGetItem",
                   "dynamodb:BatchWriteItem",
                   "dynamodb:PutItem",
                   "dynamodb:DeleteItem",
                   "dynamodb:GetItem",
                   "dynamodb:Scan",
                   "dynamodb:Query",
                   "dynamodb:UpdateItem"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

1. Scegliere **Esamina policy**.

1. Per **Nome**, inserisci un valore che ti aiuti a identificare questa politica di autorizzazioni, ad esempio. *EthereumPolicyForEC2* Per **Description (Descrizione)** immetti un breve riepilogo. Scegli **Crea policy**.  
![AWS console che mostra la pagina Crea policy con nome, descrizione e autorizzazioni di servizio.](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/ec2-perms-policy.png)

1. Scegliere **Roles (Ruoli)**, **Create role (Crea ruolo)**.

1. Seleziona **EC2**, **Next: Permissions (Successivo: autorizzazioni)**.

1. Nel campo **Cerca**, inserisci il nome della politica di autorizzazione che hai creato in precedenza, ad esempio. *EthereumPolicyForEC2*

1. Seleziona il segno di spunta della policy creata in precedenza e scegli **Next: Review (Successivo: Rivedi)**.  
![AWS console che mostra la pagina Crea ruolo con la EthereumPolicyFor EC2 politica selezionata.](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/ec2-select-policy.png)

1. Per **Nome ruolo**, inserisci un valore che ti aiuti a identificare il ruolo, ad esempio *EC2RoleForEthereum*. Per **Role description (Descrizione ruolo)**, immetti un breve riepilogo. Scegli **Create role (Crea ruolo)**.

1. Dall'elenco, scegli il ruolo che hai appena creato. Se il tuo account dispone di più ruoli, puoi inserire il nome del ruolo nel campo **Search (Ricerca)**.  
![AWS IAM interfaccia che mostra un ruolo denominato EC2 RoleforEther con una descrizione associata e un'entità attendibile.](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/ec2-select-role.png)

1. Copia il valore **Instance Profile ARN (ARN profilo istanza)** e salvalo in modo che sia possibile copiarlo di nuovo. Hai bisogno di questo ARN quando crei la rete Ethereum.  
![AWS IAM pagina di riepilogo del ruolo che mostra i campi Role ARN e Instance Profile ARNs .](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/ec2-role-arn.png)

## Per creare un host bastione
<a name="blockchain-templates-bastion-host"></a>

In questo tutorial viene creato un bastion host. Questa è un'istanza EC2 che usi per connetterti alle interfacce web e alle istanze della tua rete Ethereum. Il suo unico scopo è quello di inoltrare il traffico SSH da client attendibili al di fuori del VPC in modo che possano accedere alle risorse di rete Ethereum.

Si imposta il bastion host perché l'Application Load Balancer creato dal modello è interno, il che significa che instrada solo gli indirizzi IP interni. Il bastion host:
+ Dispone di un indirizzo IP interno riconosciuto dall'Application Load Balancer perché viene lanciato nella seconda sottorete pubblica creata in precedenza.
+ Dispone di un indirizzo IP pubblico assegnato dalla sottorete, a cui è possibile accedere da origini attendibili esterne al VPC.
+ È associato al gruppo di sicurezza dell'Application Load Balancer creato in precedenza, che dispone di una regola in entrata che consente il traffico SSH (porta 22) dai client attendibili.

Per poter accedere alla rete Ethereum, è necessario configurare client attendibili per collegarsi mediante il bastion host. Per ulteriori informazioni, consulta [Connect EthStats e EthExplorer utilizzo di Bastion Host](blockchain-bastion-host-connect.md). Un bastion host è un approccio. È possibile utilizzare qualsiasi approccio che consenta di accedere da client attendibili a risorse private all'interno di un VPC.

**Creazione di un bastion host**

1. Segui i primi cinque passaggi per [lanciare un'istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) nella Guida per l'*utente di Amazon EC2*.

1. Scegliere **Edit Instance Details (Modifica dettagli istanza)**. Per **Network (Rete)**, scegliere il VPC creato in precedenza, per **Subnet (Sottorete)** selezionare la seconda sottorete pubblica creata in precedenza. Lasciare tutte le altre impostazioni ai valori predefiniti.

1. Confermare la modifica quando richiesto, quindi scegliere **Review and Launch (Verifica e avvia)**.

1. Scegliere **Edit security groups (Modifica gruppi di sicurezza)**. Per **Assign a security group (Assegna un gruppo di sicurezza)**, scegliere **Select an existing security group (Seleziona un gruppo di sicurezza esistente)**.

1. Dall'elenco dei gruppi di sicurezza selezionare il gruppo di sicurezza dell'Application Load Balancer creato in precedenza, quindi scegliere **Review and Launch (Verifica e avvia)**.

1. Scegli **Avvia**.

1. Prendere nota dell'ID istanza. Servirà più tardi, quando [Connect EthStats e EthExplorer utilizzo di Bastion Host](blockchain-bastion-host-connect.md).  
![Segno di spunta verde che indica l'avvio riuscito dell'istanza con ID dell'istanza parzialmente oscurato.](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/bastion-instance.png)