

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 EC2 istanza](#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**.  
![\[VPC configuration form with public and private subnet details for 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 il blocco **IPv4 CIDR**, immettere 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.

![\[VPC Dashboard showing three subnets with their IDs, states, and IPv4 CIDR ranges.\]](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 EC2 istanze che controlla il traffico da e verso le istanze del cluster EC2 
+ Un gruppo di sicurezza per l'Application Load Balancer che controlla il traffico tra l'Application Load Balancer EC2 , le istanze e l'host bastion. Questo gruppo di sicurezza viene associato anche al bastion host.

Ogni gruppo di sicurezza dispone di regole che consentono la comunicazione tra l'Application Load Balancer e le EC2 istanze, oltre ad 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 EC2 console Amazon 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 EC2 le regole in entrata al gruppo di sicurezza per le istanze**

1. Seleziona il gruppo di sicurezza per le EC2 istanze che hai 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 EC2* -SG. Ciò consente alle EC2 istanze del gruppo di sicurezza di comunicare tra loro.

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*. Ciò consente alle EC2 istanze del gruppo di sicurezza di comunicare con l'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**, lasciate selezionato **Custom**, quindi scegliete il gruppo di sicurezza per EC2 le istanze dall'elenco, ad esempio Ethereum -SG. EC2* Ciò consente EC2 alle istanze del gruppo di sicurezza di comunicare con l'Application Load Balancer e l'host bastion.

   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 all'host bastion di accettare il traffico SSH dal computer, consentendogli di utilizzare l'host bastion per visualizzare le interfacce Web e connettersi alle istanze sulla rete Ethereum. EC2 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 **Destinazione**, lascia selezionato **Personalizzato**, quindi scegli il gruppo di sicurezza per le istanze dall'elenco. EC2 Ciò consente connessioni in uscita dall'Application Load Balancer e dall'host bastion EC2 alle istanze della 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 EC2 istanza
<a name="blockchain-templates-iam-roles"></a>

Quando utilizzi questo modello, specifichi un ruolo IAM per Amazon ECS e un profilo di EC2 istanza. 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' EC2 istanza 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 console interface for creating a role, with Elastic Container Service selected as the use case.\]](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.  
![\[AWSIAM console showing a role named "ECSRoleForEtherum" with its description.\]](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.  
![\[AWSIAM role summary page showing role ARN, description, and attached policies.\]](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/ecs-role-arn.png)

Il profilo di EC2 istanza specificato nel modello viene utilizzato dalle EC2 istanze della rete Ethereum per interagire con altri AWS servizi. 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 di 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 showing Create policy page with name, description, and service permissions.\]](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. Scegli **EC2****Avanti: 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 showing Create role page with EthereumPolicyForEC2 policy selected.\]](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)**.  
![\[AWSIAM interface showing a role named EC2RoleforEther with associated description and trusted entity.\]](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.  
![\[AWSIAM role summary page showing Role ARN and Instance Profile ARNs fields.\]](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' EC2 istanza 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 *Amazon EC2 User Guide*.

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).  
![\[Green checkmark indicating successful instance launch with partially obscured instance ID.\]](http://docs.aws.amazon.com/it_it/blockchain-templates/latest/developerguide/images/bastion-instance.png)