Prerequisiti di installazione - AWS Blockchain Templates

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 suAWS, ti consigliamo di utilizzare Amazon Managed Blockchain (AMB). Per ulteriori informazioni su come iniziare a usare Amazon Managed Blockchain, consulta il nostro workshop su Hyperledger Fabric o il nostro blog sull'implementazione di un nodo Ethereum. Se hai domande su AMB o hai bisogno di ulteriore assistenza, contatta o contatta AWS Support 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

La configurazione di AWS Blockchain Template per Ethereum specificata in questo tutorial richiede quanto segue:

Creazione di un VPC e delle sottoreti

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? 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, il VPC e la sottorete come descritto di seguito.

Creazione di un indirizzo IP elastico
  1. Apri alla 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 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. 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.

  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: Seleziona una configurazione VPC) scegliere VPC with Public and Private Subnets (VPC con sottoreti pubbliche e private), 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 descrittivo.

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

  6. Per Private subnet's IPv4 CIDR (CIDR IPv4 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.

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

  8. Lascia le altre impostazioni ai valori predefiniti.

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

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.

  2. Seleziona Create Subnet (Crea sottorete).

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

  4. In VPC, selezionare il VPC creato in precedenza.

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

  6. Per IPv4 CIDR block (Blocco CIDR IPv4), immettere 10.0.2.0/24.

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

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

  9. 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. 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 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/.

  2. Nel pannello 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, selezionare il VPC creato in precedenza.

  5. Scegli 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 Inbound (In entrata), selezionare Edito (Modifica).

  3. In Type (Tipo), selezionare All traffic (Tutto il traffico). Per Source (Origine), lascia selezionato Custom (Personalizzata), 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. Selezionare Add Rule (Aggiungi regola).

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

  6. Selezionare 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:

    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.

    2. Selezionare Add Rule (Aggiungi regola).

    3. 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 per le istanze EC2, ad esempio, EthereumEC2-SG. In questo modo le istanze EC2 nel gruppo di sicurezza possono comunicare con l'Application Load Balancer e con il bastion host.

    4. Selezionare Add Rule (Aggiungi regola).

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

    6. Selezionare 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. Selezionare Add Rule (Aggiungi regola).

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

  6. Selezionare Add Rule (Aggiungi regola).

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

  8. Selezionare Salva.

Crea un ruolo IAM per Amazon ECS e un profilo di istanza EC2

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

Per creare il ruolo IAM per Amazon ECS
  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel riquadro di navigazione, seleziona Ruoli > 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), selezionare Elastic Container Service.

  5. In Select your use case (Seleziona il tuo caso d'uso), seleziona Elastic Container Service, Next:Permissions.

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

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

  8. Scegli Crea ruolo.

  9. Dall'elenco, scegli il ruolo che hai appena creato. Se il tuo account ha molti ruoli, puoi cercare il nome del ruolo.

  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.

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, seleziona Policy, quindi 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": "*" } ] }
  3. Scegli Esamina la policy.

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

  5. Scegliere Roles (Ruoli), Create role (Crea ruolo).

  6. Seleziona EC2, Next: Permissions (Successivo: autorizzazioni).

  7. Nel campo Cerca, inserisci il nome della politica di autorizzazione che hai creato in precedenza, ad esempio EC2. EthereumPolicyFor

  8. Seleziona il segno di spunta della policy creata in precedenza e scegli Next: Review (Successivo: Rivedi).

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

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

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

Per creare un host bastione

In questo tutorial viene creato un bastion host. Si tratta di 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. 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 nella Guida per l'utente di Amazon EC2 per le istanze Linux.

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

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

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

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

  6. Scegli Avvia.

  7. Prendere nota dell'ID istanza. Servirà più tardi, quando Connect EthStats e EthExplorer utilizzo di Bastion Host.