AWS Blockchain Templates - Developer Guide - AWS Documentation

Pagina creata da Giulia Fiori
 
CONTINUA A LEGGERE
AWS Blockchain Templates - Developer Guide - AWS Documentation
AWS Blockchain Templates
      Developer Guide
AWS Blockchain Templates - Developer Guide - AWS Documentation
AWS Blockchain Templates Developer Guide

AWS Blockchain Templates: Developer Guide
Copyright © 2019 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,
in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits
Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not
be affiliated with, connected to, or sponsored by Amazon.
AWS Blockchain Templates - Developer Guide - AWS Documentation
AWS Blockchain Templates Developer Guide

Table of Contents
  Che cosa sono AWS Blockchain Templates? .......................................................................................... 1
       Come iniziare ............................................................................................................................. 2
              Esperto di AWS e della blockchain ........................................................................................ 2
              Esperto di AWS e nuovo utente della blockchain ..................................................................... 3
              Principiante in AWS ed esperto della blockchain ..................................................................... 3
              Nuovo utente di AWS e della blockchain ................................................................................ 3
       Servizi correlati .......................................................................................................................... 3
  Impostazione ...................................................................................................................................... 4
       Registrati ad AWS ...................................................................................................................... 4
       Crea un utente IAM .................................................................................................................... 4
       Crea una coppia di chiavi ............................................................................................................ 6
  Nozioni di base .................................................................................................................................. 7
       Prerequisiti di configurazione ........................................................................................................ 7
              Creare un VPC e delle sottoreti ............................................................................................ 8
              Creazione di gruppi di sicurezza ......................................................................................... 10
              Creare un ruolo IAM per Amazon ECS e un profilo dell'istanza EC2 .......................................... 12
       Creazione della rete Ethereum .................................................................................................... 16
       Eliminazione delle risorse ........................................................................................................... 18
  AWS Blockchain Templates e caratteristiche ......................................................................................... 20
       AWS Blockchain Template per Ethereum ..................................................................................... 20
              Link per l'avvio ................................................................................................................. 20
              Link per il download .......................................................................................................... 20
              Opzioni di Ethereum .......................................................................................................... 21
              Prerequisiti ....................................................................................................................... 23
              Connessione alle risorse Ethereum ...................................................................................... 27
       AWS Blockchain Template per Hyperledger Fabric ......................................................................... 28
              Link per l'avvio ................................................................................................................. 28
              Link per il download .......................................................................................................... 29
              Componenti di AWS Blockchain Template per Hyperledger Fabric ............................................ 29
              Prerequisiti ....................................................................................................................... 30
              Connessione alle risorse Hyperledger Fabric ......................................................................... 30
  Cronologia dei documenti ................................................................................................................... 32
  AWS Glossary .................................................................................................................................. 33

                                                                        iii
AWS Blockchain Templates - Developer Guide - AWS Documentation
AWS Blockchain Templates Developer Guide

Che cosa sono AWS Blockchain
Templates?
   AWS Blockchain Templates ti consente di creare e distribuire rapidamente le reti blockchain su AWS
   utilizzando framework blockchain diversi. Blockchain è una tecnologia di database decentralizzata che
   mantiene un set crescente di transazioni e contratti smart consolidati per ridurre il rischio di manomissioni,
   nonché revisioni utilizzando funzioni di crittografia.

   Una rete blockchain è una rete peer-to-peer che migliora l'efficienza e l'immutabilità delle transazioni
   per processi aziendali, come ad esempio pagamenti internazionali, gestione della supply chain, catasto,
   crowdfunding, governance, transazioni finanziarie e molto altro ancora. In questo modo persone e
   organizzazioni che potrebbero non conoscersi si fidano le une delle altre e possono verificare in modo
   indipendente il record della transazione.

   Puoi utilizzare AWS Blockchain Templates per configurare e avviare gli stack AWS CloudFormation per
   creare reti blockchain. Le risorse e i servizi AWS che utilizzi dipendono dal AWS Blockchain Template che
   hai scelto e dalle opzioni specificate. Per informazioni sui modelli disponibili e sulle relative funzionalità,
   consulta AWS Blockchain Templates e caratteristiche (p. 20). Nel diagramma seguente sono illustrati i
   componenti fondamentali di una rete blockchain su AWS creata mediante AWS Blockchain Templates.

                                                    1
AWS Blockchain Templates - Developer Guide - AWS Documentation
AWS Blockchain Templates Developer Guide
                                           Come iniziare

Come iniziare
    Il livello di esperienza acquisita con blockchain e AWS, in particolare con i servizi correlati a AWS
    Blockchain Templates, determina il modo migliore per iniziare.

    Esperto di AWS e della blockchain
    Inizia consultando l'argomento in AWS Blockchain Templates e caratteristiche (p. 20) relativo al
    framework da utilizzare. Utilizza i link per avviare AWS Blockchain Template e configurare la rete
    blockchain o per scaricare i modelli ed esaminarli personalmente.

                                                     2
AWS Blockchain Templates - Developer Guide - AWS Documentation
AWS Blockchain Templates Developer Guide
                              Esperto di AWS e nuovo utente della blockchain

     Esperto di AWS e nuovo utente della blockchain
     Inizia con il tutorial Nozioni di base su AWS Blockchain Templates (p. 7), che ti guida attraverso
     il processo di creazione di una rete blockchain Ethereum introduttiva utilizzando le impostazioni
     predefinite. Al termine, per una panoramica dei framework blockchain e dei link e per ottenere ulteriori
     informazioni sulle opzioni di configurazione e sulle caratteristiche, consulta AWS Blockchain Templates e
     caratteristiche (p. 20).

     Principiante in AWS ed esperto della blockchain
     Inizia consultando Configurare AWS Blockchain Templates (p. 4). In questo modo potrai conoscere
     gli aspetti fondamentali di AWS, come un account e un profilo utente. Successivamente, esegui il
     tutorial Nozioni di base su AWS Blockchain Templates (p. 7), che ti guida attraverso il processo di
     creazione di una rete blockchain Ethereum introduttiva. Anche se alla fine non utilizzerai Ethereum, avrai
     acquisito un'esperienza diretta con la configurazione dei servizi correlati. Questa esperienza è utile per
     tutti i framework blockchain. Infine, consulta l'argomento nella sezione AWS Blockchain Templates e
     caratteristiche (p. 20) relativa al tuo framework.

     Nuovo utente di AWS e della blockchain
     Inizia consultando Configurare AWS Blockchain Templates (p. 4). In questo modo potrai conoscere
     gli aspetti fondamentali di AWS, come un account e un profilo utente. Quindi, esegui il tutorial Nozioni di
     base su AWS Blockchain Templates (p. 7), che ti guida attraverso il processo di creazione di una rete
     blockchain Ethereum introduttiva. Dedica del tempo a esplorare i link per ottenere ulteriori informazioni sui
     servizi AWS e su Ethereum.

Servizi correlati
     A seconda delle opzioni selezionate, AWS Blockchain Templates può utilizzare i seguenti servizi AWS per
     distribuire la blockchain:

     • Amazon EC2: mette a disposizione capacità di elaborazione per la rete blockchain. Per ulteriori
       informazioni, consulta la Guida per l'utente di Amazon EC2 per le istanze Linux.
     • Amazon ECS: gestisce la distribuzione dei container tra le istanze EC2 in un cluster per la rete
       blockchain, se scegli di utilizzarla. Per ulteriori informazioni, consulta la Amazon Elastic Container
       Service Developer Guide.
     • Amazon VPC: fornisce l'accesso alla rete per le risorse Ethereum create. Puoi personalizzare la
       configurazione per l'accessibilità e la sicurezza. Per ulteriori informazioni, consulta la Guida per lo
       sviluppatore di Amazon VPC.
     • Application Load Balancing: funge da singolo punto di contatto per l'accesso alle interfacce utente e
       ai servizi interni disponibili quando si usa Amazon ECS come piattaforma dei container. Per ulteriori
       informazioni, consulta Che cos'è un Application Load Balancer? nella Guida per l'utente per Application
       Load Balancer.

                                                     3
AWS Blockchain Templates - Developer Guide - AWS Documentation
AWS Blockchain Templates Developer Guide
                                         Registrati ad AWS

Configurare AWS Blockchain
Templates
    Prima di iniziare a utilizzare AWS Blockchain Templates, completa le attività seguenti:

    • Registrati ad AWS (p. 4)
    • Crea un utente IAM (p. 4)
    • Crea una coppia di chiavi (p. 6)

    Questi sono i prerequisiti fondamentali per tutte le configurazioni della blockchain. Inoltre, la rete
    blockchain che scegli potrebbe avere dei prerequisiti che variano a seconda dell'ambiente e delle opzioni
    di configurazione desiderate. Per ulteriori informazioni, consulta la sezione pertinente per il tuo modello di
    blockchain in AWS Blockchain Templates e caratteristiche (p. 20).

    Per istruzioni dettagliate su come configurare i prerequisiti per una rete Ethereum privata utilizzando un
    cluster Amazon ECS, consulta Nozioni di base su AWS Blockchain Templates (p. 7).

Registrati ad AWS
    Quando ti registri ad AWS, il tuo account viene automaticamente registrato per tutti i servizi AWS. Ti
    vengono addebitati solo i servizi che utilizzi.

    Se disponi già di un account AWS, passa all'operazione successiva. Se non disponi di un account AWS,
    utilizza la seguente procedura per crearne uno.

    Per creare un account AWS:

    1.   Aprire la pagina https://aws.amazon.com/, quindi scegliere Create an AWS Account (Crea un account
         AWS).
             Note
            Se ci si è già iscritti alla Console di gestione AWS tramite credenziali Utente root dell'account
            AWS, scegliere Sign in to a different account (Accedi a un account diverso). Se ci si è già
            iscritti alla console tramite credenziali IAM, scegliere Sign-in using root account credentials
            (Accedi con le credenziali dell'account root). Selezionare quindi Create a new AWS account
            (Crea un nuovo account AWS).
    2.   Seguire le istruzioni online.

         Come parte della procedura di registrazione si riceverà una telefonata, durante la quale si dovrà
         inserire un codice di verifica usando la tastiera del telefono.

    Prendi nota del numero del tuo account AWS, poiché sarà necessario per la creazione dell'utente IAM nella
    fase successiva.

Crea un utente IAM
    Per accedere ai servizi in AWS, è necessario fornire le credenziali in modo che il servizio sia in grado
    di determinare se disponi delle autorizzazioni per accedere alle risorse. Per la console è necessaria la

                                                     4
AWS Blockchain Templates - Developer Guide - AWS Documentation
AWS Blockchain Templates Developer Guide
                                     Crea un utente IAM

password. È possibile creare chiavi di accesso per consentire all'account AWS di accedere all'interfaccia a
riga di comando o all'API. Tuttavia, non è consigliabile accedere ad AWS usando le credenziali dell'account
AWS, ma è preferibile usare AWS Identity and Access Management (IAM). Crea un utente IAM e quindi
aggiungilo a un gruppo IAM con autorizzazioni amministrative oppure concedi all'utente le autorizzazioni
amministrative. Potrai quindi accedere ad AWS usando un URL speciale e le credenziali dell'utente IAM.

Se hai effettuato la registrazione ad AWS senza creare un utente IAM, puoi crearne uno mediante la
console IAM. Se possiedi già un utente IAM, questa fase può essere ignorata.

Per creare un utente IAM per te e aggiungere l'utente a un gruppo di amministratori

1.   Utilizza l'indirizzo e-mail e la password del tuo account AWS per accedere come Utente root
     dell'account AWS alla console IAM su https://console.aws.amazon.com/iam/.
         Note

         È fortemente consigliato rispettare la best practice di utilizzare l'utente Administrator IAM
         di seguito e conservare in un luogo sicuro le credenziali dell'utente root. Accedi come utente
         root solo per eseguire alcune attività di gestione dell'account e del servizio.
2.   Nel riquadro di navigazione della console seleziona Users (Utenti), quindi Add user (Aggiungi utente).
3.   Per User Name (Nome utente), digitare Administrator.
4.   Selezionare la casella di controllo accanto a Console di gestione AWS access (accesso), selezionare
     Custom password (Password personalizzata), quindi digitare la password del nuovo utente nella
     casella di testo. Puoi anche scegliere di selezionare Require password reset (Richiedi reimpostazione
     password) per forzare l'utente a creare una nuova password al suo successivo accesso.
5.   Scegliere Next: Permissions (Successivo: Autorizzazioni).
6.   Nella pagina Set permissions (Imposta autorizzazioni per utente), selezionare Add user to group
     (Aggiungi l'utente al gruppo).
7.   Selezionare Create group (Crea gruppo).
8.   Nella finestra di dialogo Create group (Crea gruppo), per Group name (Nome gruppo) digitare
     Administrators.
9.   Per Filter policies (Filtra policy), selezionare la casella di controllo per AWS managed - job function
     (Gestita da AWS - mansione lavorativa).
10. Nell'elenco delle policy, selezionare la casella di controllo accanto ad AdministratorAccess.
    Selezionare quindi Create group (Crea gruppo).
11. Nell'elenco dei gruppi seleziona la casella di controllo per il tuo nuovo gruppo. Se necessario,
    selezionare Refresh (Aggiorna) per visualizzare il gruppo nell'elenco.
12. Selezionare Next: Tags (Successivo: tag) per aggiungere metadati all'utente collegamento i tag come
    coppie chiave-valore.
13. Selezionare Next: Review (Successivo: esamina) per visualizzare l'elenco dei membri del gruppo da
    aggiungere al nuovo utente. Quando sei pronto per continuare, seleziona Create user (Crea utente).

Puoi utilizzare questa stessa procedura per creare altri gruppi e utenti e per concedere ai tuoi utenti
l'accesso alle risorse del tuo account AWS. Per ulteriori informazioni sull'utilizzo delle policy per limitare
le autorizzazioni degli utenti a risorse AWS specifiche, seleziona Access Management (Gestione
dell'accesso) ed Example Policies (Policy di esempio).

Per accedere come nuovo utente IAM, disconnettiti dalla Console di gestione AWS, quindi utilizza l'URL
seguente, in cui your_aws_account_id è il tuo numero di account AWS senza i trattini (ad esempio, se il tuo
numero di account AWS è 1234-5678-9012, il tuo ID account AWS è 123456789012):

https://your_aws_account_id.signin.aws.amazon.com/console/

                                                  5
AWS Blockchain Templates - Developer Guide - AWS Documentation
AWS Blockchain Templates Developer Guide
                                        Crea una coppia di chiavi

     Immettere il nome utente e la password di IAM appena creati. Una volta effettuato l'accesso, la barra di
     navigazione visualizza "your_user_name @ your_aws_account_id".

     Se non desideri che l'URL per la tua pagina di accesso contenga il tuo ID account di AWS, è possibile
     creare un alias dell'account. Dal pannello di controllo IAM scegli Create Account Alias (Crea alias account)
     e immetti un alias, ad esempio il nome dell'azienda. Per effettuare l'accesso dopo aver creato un alias
     dell'account, utilizzare il seguente URL:

     https://your_account_alias.signin.aws.amazon.com/console/

     Per verificare il link di accesso degli utenti IAM al proprio account, apri la console IAM e controlla sotto il
     link di accesso utenti IAM sul pannello di controllo.

     Per ulteriori informazioni, consulta la Guida per l'utente di AWS Identity and Access Management.

Crea una coppia di chiavi
     AWS utilizza la crittografia a chiave pubblica per rendere sicure le informazioni di accesso per le istanze di
     una rete blockchain. Puoi specificare il nome della coppia di chiavi quando utilizzi ciascun AWS Blockchain
     Template. Puoi quindi utilizzare la coppia di chiavi per accedere direttamente alle istanze, ad esempio per
     eseguire l'accesso tramite SSH.

     Se disponi già di una coppia di chiavi nella regione corretta, puoi ignorare questa fase. Se non hai ancora
     creato una coppia di chiavi, puoi crearne una utilizzando la console Amazon EC2. Crea una coppia di chiavi
     nella stessa regione utilizzata per avviare la rete Ethereum. Per ulteriori informazioni, consulta Regioni e
     zone di disponibilità nella Guida per l'utente di Amazon EC2 per le istanze Linux.

     Per creare una coppia di chiavi

     1.   Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.
     2.   Dalla barra di navigazione, seleziona una regione per la coppia di chiavi. Puoi selezionare qualsiasi
          regione disponibile, indipendentemente dalla tua posizione, ma le coppie di chiavi sono specifiche di
          una regione. Se, ad esempio, prevedi di avviare un'istanza nella regione Stati Uniti orientali (Ohio),
          devi creare una coppia di chiavi per l'istanza nella stessa regione.
     3.   Nel riquadro di navigazione scegli Key Pairs (Coppie di chiavi), Create Key Pair (Crea coppia di chiavi).
     4.   In Key pair name (Nome coppia di chiavi), immetti un nome per la nuova coppia di chiavi. Scegli un
          nome che sia facile da ricordare, ad esempio il tuo nome utente IAM, seguito da -key-pair, più il
          nome della regione. Ad esempio, me-key-pair-useast2. Seleziona Create (Crea).
     5.   Il file della chiave privata viene automaticamente scaricato dal browser. Il nome di base del file è quello
          specificato come nome della coppia di chiavi e l'estensione è .pem. Salva il file della chiave privata in
          un luogo sicuro.
              Important

              Questo è l'unico momento in cui salvare il file della chiave privata. Devi fornire il nome della
              tua coppia di chiavi quando avvii la rete Ethereum.

     Per ulteriori informazioni, consulta Coppie di chiavi Amazon EC2 nella Guida per l'utente di Amazon EC2
     per le istanze Linux. Per ulteriori informazioni sulla connessione alle istanze EC2 utilizzando la coppia di
     chiavi, vedi Connessione all'istanza Linux nella Guida per l'utente di Amazon EC2 per le istanze Linux.

                                                       6
AWS Blockchain Templates - Developer Guide - AWS Documentation
AWS Blockchain Templates Developer Guide
                                      Prerequisiti di configurazione

Nozioni di base su AWS Blockchain
Templates
     Questo tutorial dimostra come utilizzare AWS Blockchain Template per Ethereum per la creazione di
     una rete blockchain privata su AWS mediante AWS CloudFormation. La rete creata dispone di due client
     Ethereum e di un miner in esecuzione su istanze Amazon EC2 in un cluster Amazon ECS. Amazon ECS
     esegue questi servizi in container Docker estratti da Amazon ECR. Prima di iniziare questo tutorial, è utile
     avere delle informazioni sulle reti blockchain e sui servizi AWS coinvolti, ma non è obbligatorio.

     Questo tutorial presuppone che tu abbia configurato i prerequisiti generali indicati in Configurare AWS
     Blockchain Templates (p. 4). Inoltre, prima di utilizzare il modello, è necessario configurare alcune risorse
     AWS, ad esempio una rete Amazon VPC e le autorizzazioni specifiche per i ruoli IAM.

     Il tutorial illustra come configurare tali prerequisiti. Abbiamo scelto le opzioni di configurazione, ma non
     sono prescrittive per tutte le applicazioni. Se si soddisfano i prerequisiti, è possibile effettuare altre scelte di
     configurazione in base alle proprie esigenze. Per informazioni sulle caratteristiche e i prerequisiti generali
     per ogni modello e per scaricare i modelli o avviarli direttamente in AWS CloudFormation, consulta AWS
     Blockchain Templates e caratteristiche (p. 20).

     In questo tutorial gli esempi usano la regione Stati Uniti occidentali (Oregon) (us-west-2), ma è possibile
     usare qualsiasi regione che supporti AWS Blockchain Templates:

     • Regione Stati Uniti occidentali (Oregon) (us-west-2)
     • Regione US East (N. Virginia) (us-east-1)
     • Regione Stati Uniti orientali (Ohio) (us-east-2)

         Note

         Eseguire un modello in una regione non elencata tra le precedenti significa avviare le risorse nelle
         regione US East (N. Virginia) (us-east-1).

     AWS Blockchain Template per Ethereum configurato utilizzando questo tutorial crea le seguenti risorse:

     • Le istanze EC2 on demand del tipo e del numero da te specificati. Il tutorial utilizza il tipo di istanza
       t2.medium predefinito.
     • Un Application Load Balancer.

     Dopo il tutorial, viene illustrata la procedura per eliminare le risorse create.

Prerequisiti di configurazione
     La configurazione AWS Blockchain Template per Ethereum specificata in questo tutorial, richiede di
     eseguire la procedura seguente:

     • Creare un VPC e delle sottoreti (p. 8)

                                                        7
AWS Blockchain Templates Developer Guide
                                 Creare un VPC e delle sottoreti

• Creazione di gruppi di sicurezza (p. 10)
• Creare un ruolo IAM per Amazon ECS e un profilo dell'istanza EC2 (p. 12)

Creare un VPC e delle sottoreti
AWS Blockchain Template per Ethereum avvia le risorse in una rete virtuale definita dall'utente utilizzando
Amazon Virtual Private Cloud (Amazon VPC). La configurazione specificata in questo tutorial crea un
sistema Application Load Balancer che richiede due sottoreti pubbliche in zone di disponibilità diverse. Devi
essere in grado di raggiungere gli indirizzi delle sottoreti, quindi, a questo scopo, devi creare un indirizzo
IP elastico (EIP) e delle sottoreti pubbliche. Quando crei il VPC, crei una sottorete pubblica e una sottorete
privata. Quindi crei una seconda sottorete pubblica all'interno del VPC.

Per ulteriori informazioni, consulta Cos'è Amazon VPC? nella Guida per l'utente di Amazon VPC.

Utilizza la console Amazon VPC (https://console.aws.amazon.com/vpc/) per creare l'indirizzo IP elastico
(EIP), 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/.
2.   Scegli Elastic IPs (IP Elastici), Allocate new address (Alloca nuovo indirizzo), Allocate (Alloca).
3.   Annota l'indirizzo IP elastico (EIP) creato, quindi seleziona Close (Chiudi).
4.   Nell'elenco degli indirizzi IP elastici (EIP), trova l'Allocation ID (ID Allocazione) dell'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. I VPC sono specifici di una regione,
     quindi è necessario selezionare la stessa regione in cui è stata creata la coppia di chiavi e nella quale
     si sta avviando lo stack Ethereum. Per ulteriori informazioni, consulta Crea una coppia di chiavi (p. 6).
2.   Nel pannello di controllo VPC scegli Start VPC Wizard (Avvia creazione guidata VPC).
3.   Nella pagina Step 1: Select a VPC Configuration (Fase 1: Selezionare una configurazione VPC) scegli
     VPC with Public and Private Subnets (VPC con sottoreti pubbliche e private), quindi scegli Select
     (Seleziona).
4.   Nella pagina Step 2: VPC with Public and Private Subnets (Fase 2: VPC con sottoreti pubbliche
     e private) lascia i valori predefiniti per IPv4 CIDR block (Blocco CIDR IPv4) e per IPv6 CIDR block
     (Blocco CIDR IPv6). Per VPC name (Nome VPC) Inserisci un nome intuitivo.
5.   Per Public subnet's IPv4 CIDR (CIDR IPv4 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 intuitivo.

     Specifica questa sottorete come una delle prime due sottoreti per Application Load Balancer quando
     utilizzi il modello.
6.   Per Private subnet's IPv4 CIDR (CIDR IPv4 della sottorete privata), lascia il valore predefinito. Per
     Availability Zone (Zona di disponibilità) lascia il valore predefinito No Preference (Nessuna preferenza).
     Per Private subnet name (Nome sottorete privata), inserisci un nome intuitivo.
7.   Lascia le altre impostazioni ai valori predefiniti.

     L'esempio seguente mostra un VPC EthereumNetworkVPC con una sottorete pubblica
     EthereumPubSub1 e una sottorete privata EthereumPvtSub1. La sottorete pubblica utilizza la zona
     di disponibilità us-west-2a. Prendi nota della zona di disponibilità, poiché sarà necessario sceglierne
     un'altra nella fase successiva.

                                                    8
AWS Blockchain Templates Developer Guide
                               Creare un VPC e delle sottoreti

8.   Seleziona Create VPC (Crea VPC).

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

1.   seleziona Subnets (Sottoreti) nel riquadro di navigazione, quindi Create Subnet (Crea sottorete).
2.   Per Name tag (Tag nome) immetti un nome per la sottorete. In VPC, seleziona il VPC creato in
     precedenza.
3.   Per Availability Zone (Zona di disponibilità), seleziona una zona diversa dalla quella selezionata per la
     prima sottorete pubblica.
4.   Inserisci 10.0.2.0/24 per IPv4 CIDR block (Blocco CIDR IPv4).
5.   Seleziona Yes, Create (Sì, crea).

                                                 9
AWS Blockchain Templates Developer Guide
                                Creazione di gruppi di sicurezza

Verranno visualizzate tre sottoreti per il VPC creato in precedenza. Annota i nomi e gli ID delle tre sottoreti
in modo che sia possibile specificarli utilizzando il modello.

Creazione di gruppi di sicurezza
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 in un cluster Amazon ECS, devi specificare 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 Application Load Balancer che controlla il traffico tra Application Load
  Balancer e le origini esterne e tra le istanze EC2 nella rete.

    Important

    In questo tutorial vengono creati gruppi di sicurezza che consentono l'accesso semplificato, in
    modo che il tutorial sia più facile da completare. Questi gruppi di sicurezza non sono destinati agli
    ambienti di produzione. In particolare, il gruppo di sicurezza per Elastic Load Balancer creato qui
    consente il traffico in entrata da tutti gli indirizzi IP per visualizzare le interfacce Web Ethereum.
    Inoltre, è possibile aggiungere regole che consentono il traffico in entrata per applicazioni e attività
    specifiche. Ad esempio, è possibile aggiungere una regola di entrata al gruppo di sicurezza per le
    istanze EC2 che consente il traffico SSH in entrata da indirizzi o intervalli IP specifici, in modo che
    sia possibile connettersi direttamente alle istanze tramite SSH. Per ulteriori informazioni, consulta

                                                 10
AWS Blockchain Templates Developer Guide
                                Creazione di gruppi di sicurezza

     Gruppi di sicurezza Amazon EC2 per istanze Linux nella Guida per l'utente di Amazon EC2 per le
     istanze Linux.

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/.
2.   Nel riquadro di navigazione, scegli Gruppi di sicurezza, Crea gruppo di sicurezza.
3.   Per Security group name (Nome gruppo di sicurezza), immetti un nome che sia semplice da
     identificare e che differenzi un gruppo dall'altro, ad esempio, EthereumEC2-SG o EthereumALB-SG.
     Utilizzerai questi nomi in seguito. Per Description (Descrizione) immetti un breve riepilogo.
4.   In VPC, seleziona il VPC creato in precedenza.
5.   Seleziona Crea.
6.   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
2.   Nella scheda In entrata, seleziona Modifica.
3.   In Type (Tipo), scegli All traffic (Tutto il traffico). Per Source (Origine), lascia selezionato Custom
     (Personalizzato), quindi scegli nell'elenco il gruppo di sicurezza che stai modificando, ad esempio,
     EthereumEC2-SG. In questo modo le istanze EC2 nel gruppo di sicurezza possono comunicare l'una
     con l'altra.
4.   Seleziona Aggiungi regola.
5.   In Type (Tipo), scegli All traffic (Tutto il traffico). Per Source (Origine), lascia l'opzione Custom
     (Personalizzata) selezionata, quindi scegli nell'elenco il gruppo di sicurezza di Application Load
     Balancer, ad esempio, EthereumALB-SG. In questo modo le istanze EC2 nel gruppo di sicurezza
     possono comunicare con Application Load Balancer.
6.   Seleziona 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
2.   Nella scheda Inbound (In entrata) scegli Edit (Modifica), quindi aggiungi le seguenti regole in entrata:
          Warning

          Le regole in entrata qui di seguito consentono il traffico sulle porte specificate da tutti gli
          indirizzi IP indicati. Limita Source (Origine) per includere solo origini attendibili che richiedono
          l'accesso per visualizzare le interfacce Web Ethereum.

     a.   Per Type (Tipo) scegli HTTP. Per Source (Origine) lascia l'opzione Custom (Personalizzata)
          selezionata, quindi digita un indirizzo IP o un intervallo di indirizzi IP attendibili nel formato CIDR.
          Questa regola consente a queste origini di comunicare con Application Load Balancer su HTTP.
     b.   Seleziona Aggiungi regola.
     c.   Per Type (Tipo) scegli Custom TCP (TCP personalizzato). Per Port Range (Intervallo porte) digita
          8080. Per Source (Origine) lascia l'opzione Custom (Personalizzata) selezionata, quindi digita un

                                                  11
AWS Blockchain Templates Developer Guide
                               Creare un ruolo IAM per Amazon
                               ECS e un profilo dell'istanza EC2

          indirizzo IP o un intervallo di indirizzi IP attendibili nel formato CIDR. Questa regola consente a
          queste origini di visualizzare EthStats, servito sulla porta 8080.
     d.   Seleziona Aggiungi regola.
     e.   Per Type (Tipo) scegli Custom TCP (TCP personalizzato). Per Port Range (Intervallo porte) digita
          8545. Per Source (Origine) lascia l'opzione Custom (Personalizzata) selezionata, quindi digita un
          indirizzo IP o un intervallo di indirizzi IP attendibili nel formato CIDR. Questa regola consente a
          queste origini di utilizzare JSON RPC su HTTP, che utilizza la porta 8545.
     f.   Seleziona Salva.
3.   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.
4.   Seleziona Aggiungi regola.
5.   In Type (Tipo), scegli All traffic (Tutto il traffico). Per Source (Origine), lascia selezionata l'opzione
     Custom (Personalizzata) 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 alle istanze EC2 nella
     rete Ethereum.
6.   Seleziona Salva.

Creare un ruolo IAM per Amazon ECS e un profilo
dell'istanza EC2
Quando utilizzi questo modello devi specificare un ruolo IAM per Amazon ECS e un profilo dell'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 nella Guida
per l'utente di IAM. Puoi impostare il ruolo IAM per Amazon ECS e il profilo dell'istanza EC2 utilizzando la
console IAM (https://console.aws.amazon.com/iam/).

Per creare un ruolo IAM per Amazon ECS

1.   Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.
2.   Nel riquadro di navigazione seleziona Roles (Ruoli), quindi Create role (Crea ruolo).
3.   In Select type of trusted entity (Seleziona tipo di entità attendibile) scegli AWS service (Servizio AWS).
4.   In Choose the service that will use this role (Scegli il servizio che utilizzerà questo ruolo), seleziona
     Elastic Container Service.
5.   In Select your use case (Seleziona il tuo caso d'uso), seleziona Elastic Container Service,
     Next:Permissions.

                                                 12
AWS Blockchain Templates Developer Guide
                               Creare un ruolo IAM per Amazon
                               ECS e un profilo dell'istanza EC2

6.   In Permissions policy (Policy autorizzazioni), lascia la policy predefinita
     (AmazonEC2ContainerServiceRole) selezionata e scegli Next:Review.
7.   Per Role name (Nome ruoli), immetti un valore che consenta di identificare il ruolo, ad esempio
     ECSRoleForEthereum. Per Role Description (Descrizione ruolo) immetti un breve riepilogo. Prendi
     nota del nome del ruolo per dopo.
8.   Seleziona Create role (Crea ruolo).
9.   Dall'elenco, scegli il ruolo che hai appena creato. Se il tuo account ha più ruoli, puoi inserire il nome del
     ruolo in Search (Cerca).

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

                                                 13
AWS Blockchain Templates Developer Guide
                               Creare un ruolo IAM per Amazon
                               ECS e un profilo dell'istanza EC2

Il profilo dell'istanza EC2 specificato nel modello viene assunto 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, scegli Policies (Policy), quindi Create policy (Crea policy).
2.   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": "*"
             }
         ]

                                                 14
AWS Blockchain Templates Developer Guide
                              Creare un ruolo IAM per Amazon
                              ECS e un profilo dell'istanza EC2

     }

3.   Seleziona Review policy (Esamina policy).
4.   Per Name (Nome), immettere un valore che consenta di identificare questa policy di autorizzazione,
     ad esempio EthereumPolicyForEC2. Per Description (Descrizione) immetti un breve riepilogo. Scegli
     Create Policy (Crea policy).

5.   Seleziona Roles (Ruoli), quindi Create role (Crea ruolo).
6.   Seleziona EC2, Next: Permissions.
7.   Nel campo Search (Ricerca) inserisci il nome della policy di autorizzazione creata in precedenza, ad
     esempio EthereumPolicyForEC2.
8.   Seleziona i segno di spunta della policy creata in precedenza e scegli Next: Review (Successivo:
     Rivedi).

9.   Per Role name (Nome ruoli), immetti un valore che consenta di identificare il ruolo, ad esempio
     EC2RoleForEthereum. Per Role description (Descrizione ruolo), immetti un breve riepilogo. Scegli
     Create role (Crea ruolo).

                                               15
AWS Blockchain Templates Developer Guide
                                    Creazione della rete Ethereum

    10. Dall'elenco, scegli il ruolo che hai appena creato. Se il tuo account ha più ruoli, puoi inserire il nome del
        ruolo nel campo Search (Ricerca).

    11. Copia il valore di 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.

Creazione della rete Ethereum
    La rete Ethereum specificata utilizzando il modello in questo argomento avvia lo stack AWS
    CloudFormation che crea un cluster Amazon ECS di istanze EC2 per la rete Ethereum. Il modello si basa
    sulle risorse create in precedenza in Prerequisiti di configurazione (p. 7).

    Quando si avvia lo stack AWS CloudFormation che utilizza il modello, vengono creati stack nidificati
    per alcune attività. Al completamento, è possibile connettersi alle risorse servite attraverso il sistema
    Application Load Balancer della rete per verificare che la rete Ethereum sia in esecuzione e accessibile.

    Per creare la rete Ethereum con AWS Blockchain Template per Ethereum

    1.   Apri AWS Blockchain Template per Ethereum nella console AWS CloudFormation utilizzando i
         seguenti collegamenti rapidi per la regione AWS in cui stai operando:

         • Avvia nella regione US East (N. Virginia) (us-east-1)
         • Avvia nella regione Stati Uniti orientali (Ohio) (us-east-2)
         • Avvia nella regione Stati Uniti occidentali (Oregon) (us-west-2)

                                                     16
AWS Blockchain Templates Developer Guide
                                 Creazione della rete Ethereum

2.   Inserisci i valori in base alle seguenti indicazioni:

     • Per Stack name (Nome stack) inserire un nome che sia facile da identificare. Il nome viene utilizzato
       all'interno dei nomi delle risorse create dallo stack.
     • In Ethereum Network Parameters (Parametri rete Ethereum) e Private Ethereum Network
       Parameters (Parametri rete privata Ethereum), lascia le impostazioni predefinite.
     • In Platform configuration (Configurazione della piattaforma), lascia le impostazioni predefinite,
       che creano un cluster Amazon ECS delle istanze EC2. L'alternativa, docker-local, crea una rete
       Ethereum mediante una singola istanza EC2.
     • Per VPC ID (ID VPC) seleziona il VPC creato in precedenza in Creare un VPC e delle
       sottoreti (p. 8).
     • Per List of VPC Subnets to use (Elenco di sottoreti VPC da utilizzare) seleziona la singola sottorete
       privata creata in precedenza in To create the VPC (p. 8).
     • Per Application Load Balancer Subnet IDs per (ID sottorete Application Load Balancer), seleziona
       due sottoreti pubbliche dall'list of subnets (p. 10) annotato in precedenza, dopo aver creato il VPC
       e la sottorete pubblica aggiuntiva.
     • In EC2 Key Pair (Coppia di chiavi EC2) seleziona una coppia di chiavi. Per informazioni su come
       creare una coppia di chiavi, consulta Crea una coppia di chiavi (p. 6).
     • Per EC2 Security Group (Gruppo di sicurezza EC2), seleziona il gruppo di sicurezza creato in
       precedenza in Creazione di gruppi di sicurezza (p. 10).
     • Per IAM Role for ECS (Ruolo IAM per ECS), immetti l'ARN del ruolo ECS creato in precedenza in
       Creare un ruolo IAM per Amazon ECS e un profilo dell'istanza EC2 (p. 12).
     • Per EC2 Instance Profile ARN (Profilo ARN istanza EC2), immetti l'ARN del profilo dell'istanza
       ECS creato in precedenza in Creare un ruolo IAM per Amazon ECS e un profilo dell'istanza
       EC2 (p. 12).
     • Per Application Load Balancer Security Group (Gruppo di sicurezza di Application Load Balancer)
       seleziona il gruppo di sicurezza di Application Load Balancer creato in precedenza in Creazione di
       gruppi di sicurezza (p. 10).
     • In ECS cluster configuration (Configurazione cluster ECS), lascia le impostazioni predefinite, che
       creano un cluster ECS delle tre istanze EC2.
     • Per EthStats, lascia l'impostazione predefinita, che è true.
     • Per EthStats Connection Secret (Segreto connessione EthStats), digita un valore arbitrario di
       almeno sei caratteri.
     • Per EthExplorer, lascia l'impostazione predefinita, che è true.
3.   Lascia tutte le altre impostazioni ai valori predefiniti, seleziona la casella di controllo di conferma, quindi
     scegli Create (Crea).

     Viene visualizzata la pagina Stack Detail (Dettagli stack) dello stack radice lanciato da AWS
     CloudFormation.
4.   Per monitorare lo stato di avanzamento dello stack radice e degli stack nidificati scegli Stacks.

                                                   17
AWS Blockchain Templates Developer Guide
                                        Eliminazione delle risorse

     5.   Quando tutti gli stack mostrano CREATE_COMPLETE per Status (Stato), è possibile connettersi alle
          interfacce utente Ethereum per verificare che la rete sia in esecuzione e accessibile. Quando si utilizza
          la piattaforma dei container ECS, gli URL di connessione a EthStats, EthExplorer ed EthJsonRPC
          attraverso Application Load Balancer sono disponibili nella scheda Output. Application Load Balancer è
          sicuro, perciò è necessario effettuare la connessione attraverso un bastion host, che usa un proxy per
          le connessioni per fornire un accesso sicuro ad Application Load Balancer. Per ulteriori informazioni,
          consulta Connessione alle risorse Ethereum (p. 27).

Eliminazione delle risorse
     AWS CloudFormation consente di eliminare facilmente le risorse create dallo stack. Quando si elimina lo
     stack, tutte le risorse create dallo stack vengono eliminate.

     Per eliminare le risorse create dal modello

     •    Apri la console AWS CloudFormation, seleziona lo stack radice creato in precedenza, scegli Actions
          (Operazioni) e Delete (Elimina).

          Lo Status (Stato) dello stack radice creato in precedenza e l'aggiornamento degli stack nidificati
          associati assumono lo stato DELETE_IN_PROGRESS.

     Puoi scegliere di eliminare i prerequisiti creati per la rete Ethereum.

     Eliminare il VPC

     •    Apri la console Amazon VPC, seleziona il VPC creato in precedenza, quindi scegli Actions
          (Operazioni) e Delete VPC (Elimina VPC). Questa operazione elimina anche le sottoreti, i gruppi di
          sicurezza e il gateway NAT associati al VPC.

                                                      18
AWS Blockchain Templates Developer Guide
                                 Eliminazione delle risorse

Eliminare il ruolo IAM e il profilo dell'istanza EC2

•   Apri la console IAM e scegli Roles (Ruoli). Seleziona il ruolo per ECS e il ruolo per EC2
    precedentemente creati e scegli Delete (Elimina).

                                               19
AWS Blockchain Templates Developer Guide
                                AWS Blockchain Template per Ethereum

AWS Blockchain Templates e
caratteristiche
    In questa sezione vengono forniti i link necessari per iniziare a creare subito la rete blockchain, nonché
    informazioni sulle opzioni di configurazione e i prerequisiti per la configurazione della rete su AWS.

    Sono disponibili i seguenti modelli:

    • AWS Blockchain Template per Ethereum
    • AWS Blockchain Template per Hyperledger Fabric

    AWS Blockchain Templates sono disponibili nelle seguenti regioni:

    • Regione Stati Uniti occidentali (Oregon) (us-west-2)
    • Regione US East (N. Virginia) (us-east-1)
    • Regione Stati Uniti orientali (Ohio) (us-east-2)

        Note

        Eseguire un modello in una regione non elencata tra le precedenti significa avviare le risorse nelle
        regione US East (N. Virginia) (us-east-1).

Utilizzo di AWS Blockchain Template per Ethereum
    Ethereum è un framework blockchain che esegue contratti smart tramite Solidity, un linguaggio specifico di
    Ethereum. Homestead è la versione più recente di Ethereum. Per ulteriori informazioni, consulta Ethereum
    Homestead Documentation e la documentazione di Solidity.

    Link per l'avvio
    Utilizza i seguenti link per avviare AWS CloudFormation in regioni specifiche con AWS Blockchain
    Template per Ethereum:

    • Avvia nella regione US East (N. Virginia) (us-east-1)
    • Avvia nella regione Stati Uniti orientali (Ohio) (us-east-2)
    • Avvia nella regione Stati Uniti occidentali (Oregon) (us-west-2)

    Link per il download
    Utilizza i seguenti link per scaricare il modello:

    • Scarica il modello (YAML) dalla regione US East (N. Virginia) (us-east-1)
    • Scarica il modello (YAML) dalla regione Stati Uniti orientali (Ohio) (us-east-2)
    • Scarica il modello (YAML) dalla regione Stati Uniti occidentali (Oregon) (us-west-2)

                                                         20
AWS Blockchain Templates Developer Guide
                                    Opzioni di Ethereum

Opzioni di Ethereum
Quando configuri la rete Ethereum utilizzando il modello, puoi effettuare delle scelte che determinano i
requisiti successivi:

• Scelta della piattaforma dei container (p. 21)
• Scelta di una rete Ethereum pubblica o privata (p. 22)

Scelta della piattaforma dei container
AWS Blockchain Templates utilizzano i container Docker archiviati in Amazon ECR per distribuire il
software blockchain. In AWS Blockchain Template per Ethereum sono disponibili due opzioni per la
Piattaforma dei container:

• ecs: indica che Ethereum viene eseguito su un cluster Amazon ECS di istanze Amazon EC2.
• docker-local: indica che Ethereum viene eseguito su una singola istanza EC2.

Utilizzo della piattaforma dei container Amazon ECS
Con Amazon ECS, puoi creare la tua rete Ethereum su un cluster ECS costituito da più istanze EC2, con
un Application Load Balancer e risorse correlate. Per ulteriori informazioni sull'utilizzo della configurazione
di Amazon ECS, consulta il tutorial Nozioni di base su AWS Blockchain Templates (p. 7).

Il diagramma seguente mostra una rete Ethereum creata utilizzando il modello con l'opzione della
piattaforma dei container ECS:

                                                   21
AWS Blockchain Templates Developer Guide
                                      Opzioni di Ethereum

Utilizzo della piattaforma docker-local
In alternativa, puoi avviare i container Ethereum all'interno di una singola istanza Amazon EC2. Tutti i
container vengono eseguiti su una singola istanza EC2. Questa è una configurazione semplificata.

Il diagramma seguente mostra una rete Ethereum creata utilizzando il modello con l'opzione della
piattaforma dei container docker-local:

Scelta di una rete Ethereum pubblica o privata
La scelta di un valore per l'ID di rete Ethereum diverso da 1-4 crea nodi Ethereum privati che vengono
eseguiti all'interno di una rete che hai definito, utilizzando i parametri della rete privata da te specificati.

Quando scegli un valore ID di rete Ethereum compreso tra 1 e 4, i nodi Ethereum creati sono uniti alla rete
Ethereum pubblica. Puoi ignorare le impostazioni della rete privata e le relative impostazioni predefinite. Se
scegli di unire i nodi Ethereum alla rete Ethereum pubblica, assicurati che i servizi appropriati nella tua rete
siano accessibili da Internet.

                                                   22
AWS Blockchain Templates Developer Guide
                                           Prerequisiti

Prerequisiti
Quando configuri la tua rete Ethereum utilizzando AWS Blockchain Template per Ethereum, è necessario
che i requisiti minimi elencati di seguito siano soddisfatti. Il modello richiede di specificare i componenti di
AWS elencati.

 Prerequisito                             Per la piattaforma ECS                   Per docker-local

 Una coppia di chiavi Amazon              ✔                                        ✔
 EC2 che puoi utilizzare per
 accedere alle istanze EC2. La
 chiave deve esistere nella stessa
 regione del cluster ECS e delle
 altre risorse.

                                                  Prerequisiti di IAM

 Un'entità principale IAM (utente         ✔                                        ✔
 o gruppo) che dispone delle
 autorizzazioni per utilizzare tutti i
 servizi correlati.

 Un profilo dell'istanza Amazon           ✔                                        ✔
 EC2 con autorizzazioni
 appropriate per le istanze EC2
 necessarie per l'interazione
 con altri servizi. Per ulteriori
 informazioni, consulta To create
 an EC2 instance profile (p. 14).

 Un ruolo IAM con autorizzazioni          ✔
 appropriate per Amazon ECS
 necessarie per l'interazione
 con altri servizi. Per ulteriori
 informazioni, consulta
 Creazione del ruolo ECS e delle
 autorizzazioni (p. 25).

                                         Prerequisiti per il gruppo di sicurezza

 Un gruppo di sicurezza per               ✔                                        ✔
 le istanze EC2 con i seguenti
 requisiti:

 • Le regole in uscita che                ✔                                        ✔
   consentono il traffico verso
   0.0.0.0/0 (impostazione
   predefinita).

 • Una regola in entrata che              ✔                                        ✔
   consente il traffico dallo stesso
   gruppo di sicurezza.

 • Le regole in entrata che                                                        ✔
   consentono il traffico HTTP
   (porta 80), EthStats (servito
   sulla porta 8080) e JSON RPC
   su HTTP (Porta 8545) dalle

                                                    23
AWS Blockchain Templates Developer Guide
                                           Prerequisiti

Prerequisito                           Per la piattaforma ECS          Per docker-local
  origini che hai specificato, ad
  esempio l'indirizzo IP del tuo
  computer client o un intervallo
  di indirizzi personalizzati.

• Una regola in entrata che            ✔
  consente il traffico dal gruppo
  di sicurezza per Amazon ECS.

Un gruppo di sicurezza per             ✔
Application Load Balancer con i
seguenti requisiti:

• Le regole in entrata che
  consentono il traffico HTTP
  (porta 80), EthStats (distribuito
  alla porta 8080) e JSON
  RPC su HTTP (porta 8545)
  dalle origini affidabili che
  hai specificato, ad esempio
  l'indirizzo IP del tuo computer
  client, un intervallo di indirizzi
  IP affidabili o un gruppo di
  sicurezza diverso.
• Una regola in entrata che
  consente l'instradamento di
  tutto il traffico dal gruppo di
  sicurezza per le istanze EC2.
• Le regole in uscita devono
  consentire l'instradamento
  di tutto il traffico solo verso
  il gruppo di sicurezza per
  le istanze EC2. Per ulteriori
  informazioni, consulta
  Creazione di gruppi di
  sicurezza (p. 10).

                                             Prerequisiti per VPC

Un indirizzo IP elastico utilizzato ✔                                  ✔
per accedere ai servizi Ethereum.

Una sottorete per eseguire le          ✔                               ✔
istanze EC2. Ti consigliamo una
sottorete privata.

Due sottoreti accessibili              ✔
pubblicamente in zone di
disponibilità differenti, richieste
da Application Load Balancer.

                                                24
AWS Blockchain Templates Developer Guide
                                         Prerequisiti

Esempio di autorizzazioni IAM per il profilo dell'istanza EC2 e il
ruolo ECS
Quando utilizzi il modello, puoi specificare un ARN del profilo dell'istanza EC2 come uno dei parametri.
Se utilizzi la piattaforma dei container ECS, puoi anche specificare un ARN del ruolo ECS. Le policy delle
autorizzazioni 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 nella Guida per l'utente
di IAM. Utilizza le istruzioni e le procedure delle policy riportate di seguito come punto di partenza per la
creazione delle autorizzazioni.

Esempio di policy delle autorizzazioni per il profilo dell'istanza EC2
Le seguenti policy delle autorizzazioni mostrano le operazioni consentite per il profilo dell'istanza EC2
quando scegli la piattaforma dei container ECS. Le stesse istruzioni delle policy possono essere utilizzate
in una piattaforma di container docker-local, in cui le chiavi di contesto ecs sono state rimosse per limitare
l'accesso.

{
     "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": "*"
         }
     ]
}

Creazione del ruolo ECS e delle autorizzazioni
Per le autorizzazioni collegate al ruolo ECS, ti consigliamo di iniziare con le policy delle autorizzazioni
AmazonEC2ContainerServiceRole. Utilizza la procedura seguente per creare un ruolo e collegare questa
policy delle autorizzazioni. Utilizza la console IAM per visualizzare le autorizzazioni più aggiornate in questa
policy.

Per creare un ruolo IAM per Amazon ECS

1.   Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

                                                25
AWS Blockchain Templates Developer Guide
                                          Prerequisiti

2.   Nel riquadro di navigazione seleziona Roles (Ruoli), quindi Create role (Crea ruolo).
3.   In Select type of trusted entity (Seleziona tipo di entità attendibile) scegli AWS service (Servizio AWS).
4.   In Choose the service that will use this role (Scegli il servizio che utilizzerà questo ruolo), seleziona
     Elastic Container Service.
5.   In Select your use case (Seleziona il tuo caso d'uso), seleziona Elastic Container Service,
     Next:Permissions.

6.   In Permissions policy (Policy autorizzazioni), lascia la policy predefinita
     (AmazonEC2ContainerServiceRole) selezionata e scegli Next:Review.
7.   Per Role name (Nome ruoli), immetti un valore che consenta di identificare il ruolo, ad esempio
     ECSRoleForEthereum. Per Role Description (Descrizione ruolo) immetti un breve riepilogo. Prendi
     nota del nome del ruolo per dopo.
8.   Seleziona Create role (Crea ruolo).
9.   Dall'elenco, scegli il ruolo che hai appena creato. Se il tuo account ha più ruoli, puoi inserire il nome del
     ruolo in Search (Cerca).

                                                 26
AWS Blockchain Templates Developer Guide
                              Connessione alle risorse Ethereum

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

Connessione alle risorse Ethereum
Quando lo stack radice creato con il modello indica CREATE_COMPLETE, puoi connetterti alle risorse
Ethereum utilizzando la console AWS CloudFormation. La modalità di connessione dipende dalla
piattaforma dei container (ECS o docker-local) che hai scelto:

• ECS: la scheda Output dello stack radice fornisce i link ai servizi in esecuzione su Application Load
  Balancer. Per motivi di sicurezza, questi URL non sono accessibili direttamente. Per connetterti, puoi
  configurare e utilizzare un bastion host per le connessioni proxy. Per ulteriori informazioni, consulta
  Connessioni proxy con un bastion host (p. 27) di seguito.
• docker-local: puoi connetterti utilizzando l'indirizzo IP dei servizi Ethereum che ospitano l'istanza EC2
  elencati di seguito. Utilizza la console EC2 per trovare l'indirizzo ec2-IP-address dell'istanza creata
  dal modello.
  • EthStats: utilizza http://ec2-IP-address
  • EthExplorer: utilizza http://ec2-IP-address:8080
  • EthJsonRpc: utilizza http://ec2-IP-address:8545

  Se hai specificato una sottorete pubblica per l'ID sottorete della rete Ethereum (l'elenco delle sottoreti
  VPC da utilizzare all'interno del modello), puoi connetterti direttamente. Il client deve essere un'origine di
  traffico in entrata affidabile per SSH (porta 22) e per le porte elencate. Questa è determinata dal gruppo
  di sicurezza EC2 specificato mediante AWS Blockchain Template per Ethereum.

  Se hai specificato una sottorete privata, puoi impostare e utilizzare un bastion host per le connessioni
  proxy a tali indirizzi. Per ulteriori informazioni, consulta Connessioni proxy con un bastion host (p. 27)
  di seguito.

Connessioni proxy con un bastion host
Con alcune configurazioni, i servizi Ethereum potrebbero non essere pubblicamente disponibili. In questi
casi, puoi collegarti alle risorse Ethereum attraverso un bastion host. Per ulteriori informazioni sui bastion
host, consulta Architettura dei bastion host di Linux nella Guida rapida sui bastion host di Linux.

Il bastion host è un'istanza EC2. Assicurati che siano soddisfatti i seguenti requisiti:

                                                 27
Puoi anche leggere