Configuration des prérequis - AWSBlockchain Templates

AWSBlockchain Templates a été abandonnée le 30 avril 2019. Aucune autre mise à jour de ce service ou de cette documentation justificative ne sera apportée. Pour une expérience de blockchain gérée optimale sur AWS, nous vous recommandons d'utiliser Amazon Managed Blockchain (AMB). Pour en savoir plus sur les premiers pas avec Amazon Managed Blockchain, consultez notre atelier sur Hyperledger Fabric ou notre blog sur le déploiement d'un nœud Ethereum. Si vous avez des questions AMB ou si vous avez besoin d'une assistance supplémentaire, contactez AWS Supportou votre AWS équipe chargée du compte.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des prérequis

Le modèle AWS Blockchain pour la configuration Ethereum que vous spécifiez dans ce didacticiel nécessite que vous fassiez ce qui suit :

Créer un VPC et des sous-réseaux

Le modèle AWS Blockchain pour Ethereum lance des ressources dans un réseau virtuel que vous définissez à l'aide d'Amazon Virtual Private Cloud (Amazon VPC). La configuration que vous spécifiez dans ce didacticiel crée un équilibreur de charge d'application qui nécessite deux sous-réseaux publics dans des zones de disponibilité distinctes. En outre, un sous-réseau privé est requis pour les instances de conteneur et le sous-réseau doit se trouver dans la même zone de disponibilité que l'équilibreur de charge d'application. Vous utilisez d'abord l'Assistant VPC pour créer un sous-réseau public et un sous-réseau privé dans la même zone de disponibilité. Vous créez ensuite un second sous-réseau public dans ce VPC dans une autre zone de disponibilité.

Pour de plus amples informations, veuillez consulter Qu'est-ce qu'Amazon VPC ? dans le Guide de l'utilisateur Amazon VPC.

Utilisez la console Amazon VPC (https://console.aws.amazon.com/vpc/) pour créer l'adresse IP élastique, le VPC et le sous-réseau, comme décrit ci-dessous.

Pour créer une adresse IP Elastic
  1. Ouvrez la console Amazon VPC à l'adresse https://console.aws.amazon.com/vpc/.

  2. Choisissez Elastic IPs (Adresses IP Elastic, Allocate new address (Allouer une nouvelle adresse, Allocate (Allouer).

  3. Notez l'adresse IP Elastic (EIP) que vous créez, puis choisissez Close (Fermer).

  4. Dans la liste des adresses IP Elastic (EIP), recherchez l'Allocation ID (ID d'allocation) de l'adresse IP Elastic (EIP) créée précédemment. Vous l'utiliserez lorsque vous créerez le VPC.

Pour créer le VPC
  1. Dans la barre de navigation, sélectionnez une région pour le VPC. Les VPC étant spécifiques à une région, sélectionnez la même région dans laquelle vous avez créé votre paire de clés et dans laquelle vous lancez la pile Ethereum. Pour plus d’informations, consultez Créer une paire de clés.

  2. Dans le tableau de bord VPC, choisissez Démarrer l'assistant VPC.

  3. Sur la page Step 1: Select a VPC Configuration (Étape 1 : Sélectionner une configuration de VPC), choisissez VPC with Public and Private Subnets (VPC avec sous-réseaux publics et privés), puis Select (Sélectionner).

  4. Sur la page Step 2: VPC with Public and Private Subnets (Étape 2 : VPC avec des sous-réseaux publics et privés), laisser le IPv4 CIDR block (Bloc d'adresse CIDR IPv4) et le IPv6 CIDR block (Bloc d'adresse CIDR IPv6) à leurs valeurs par défaut. Pour VPC name (Nom du VPC), saisissez un nom convivial.

  5. Pour Public subnet’s IPv4 CIDR (Bloc d’adresse CIDR IPv4 du sous-réseau public), conservez la valeur par défaut. Pour Availability Zone (Zone de disponibilité), choisissez une zone. Pour Public subnet name (Nom du sous-réseau public), saisissez un nom convivial.

    Vous spécifiez ce sous-réseau en tant que le premier sous-réseau des deux sous-réseaux de l'équilibreur de charge d'application lorsque vous utilisez le modèle.

    Notez la zone de disponibilité de ce sous-réseau, car vous sélectionnez la même zone de disponibilité pour le sous-réseau privé et une différente pour l'autre sous-réseau public.

  6. Pour Private subnet’s IPv4 CIDR (Bloc d’adresse CIDR IPv4 du sous-réseau privé), conservez la valeur par défaut. Pour Availability Zone (Zone de disponibilité), sélectionnez la même zone de disponibilité que lors de l'étape précédente. Pour Private subnet name (Nom du sous-réseau privé), saisissez un nom convivial.

  7. Dans le champ Elastic IP Allocation ID (ID d'allocation d'adresses IP Elastic), choisissez l'ID de l'adresse IP Elastic que vous avez créée précédemment.

  8. Conservez les valeurs par défaut pour les autres paramètres.

  9. Sélectionnez Create VPC (Créer un VPC).

    L'exemple ci-dessous montre un VPC EthereumNetworkVPC avec un sous-réseau public EthereumPubSub1 et un sous-réseau privé 1. EthereumPvtSub Le sous-réseau public utilise la zone de disponibilité us-west-2a.

    VPC configuration form with public and private subnet details for EthereumVPC.
Pour créer le second sous-réseau public dans une autre zone de disponibilité
  1. Choisissez Subnets (Sous-réseaux), puis sélectionnez le sous-réseau public que vous avez créé précédemment dans la liste. Sélectionnez l'onglet Route Table (Table de routage) et notez l'ID de la Route table (Table de routage. Vous spécifiez cette même table de routage pour le deuxième sous-réseau public ci-dessous.

  2. Choisissez Create Subnet.

  3. Pour Name tag (Balise de nom), entrez un nom pour le sous-réseau. Vous utilisez ce nom plus tard lorsque vous créez l'hôte bastion dans ce réseau.

  4. Dans le champ VPC, sélectionnez le VPC que vous avez créé précédemment.

  5. Pour Availability Zone (Zone de disponibilité), sélectionnez une autre zone à partir de la zone choisie pour le premier sous-réseau public.

  6. Pour IPv4 CIDR block (Bloc d'adresse CIDR IPv4),saisissez 10.0.2.0/24.

  7. Choisissez Yes, Create. Le sous-réseau est ajouté à la liste des sous-réseaux.

  8. Une fois le sous-réseau sélectionné dans la liste, choisissez Subnet Actions (Actions de sous-réseau), Modify auto assign IP settings (Modifier l'affectation automatique des paramètres IP). Sélectionnez Auto-assign IPs (Affecter automatiquement des adresses IP), Save (Enregistrer), Close (Fermer). Cela permet à l'hôte bastion d'obtenir une adresse IP publique lorsque vous le créez dans ce sous-réseau.

  9. Sous l'onglet Route Table (Table de routage), choisissez Edit (Modifier). Sous Change to (Remplacer par), sélectionnez l'ID de la table de routage que vous avez noté précédemment et choisissez Save (Enregistrer).

Vous devriez maintenant voir trois sous-réseaux pour le VPC que vous avez créé précédemment. Notez les noms et les ID des sous-réseaux pour pouvoir les spécifier à l'aide du modèle.

VPC Dashboard showing three subnets with their IDs, states, and IPv4 CIDR ranges.

Créer des groupes de sécurité

Les groupes de sécurité agissent comme des pare-feux, contrôlant le trafic entrant et sortant vers les ressources. Lorsque vous utilisez le modèle pour créer un réseau Ethererum sur un cluster Amazon ECS, vous spécifiez deux groupes de sécurité :

  • Un groupe de sécurité pour les instances EC2 qui contrôle le trafic de et vers les instances EC2 dans le cluster

  • Groupe de sécurité pour l'équilibreur de charge d'application qui contrôle le trafic entre ce dernier, les instances EC2 et l'hôte bastion. Vous associez également ce groupe de sécurité à l'hôte bastion.

Chaque groupe de sécurité possède des règles qui autorisent la communication entre l'Application Load Balancer et les instances EC2, ainsi que d'autres règles minimales. Cela nécessite que les groupes de sécurité se réfèrent les uns aux autres. Pour cette raison, vous devez d'abord créer les groupes de sécurité, puis les mettre à jour avec les règles appropriées.

Pour créer deux groupes de sécurité
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Security Groups, Create Security Group.

  3. Pour Security group name (Nom du groupe de sécurité), saisissez un nom pour le groupe de sécurité facile à identifier et qui le différenciera des autres, par exemple EthereumEC2-SG ou EthereumALB-SG. Vous utiliserez ces noms plus tard. Sous Description, saisissez un résumé.

  4. Dans le champ VPC, sélectionnez le VPC que vous avez créé précédemment.

  5. Choisissez Créer.

  6. Répétez les étapes ci-dessus pour créer un autre groupe de sécurité.

Ajouter des règles entrantes au groupe de sécurité pour les instances EC2
  1. Sélectionner le groupe de sécurité pour les instances EC2 créées précédemment

  2. Dans l'onglet Entrant, choisissez Modifier.

  3. Pour Type, sélectionnez All traffic (Tout le trafic). Pour Source, laissez Custom (Personnalisé) sélectionné, puis choisissez le groupe de sécurité que vous modifiez actuellement dans la liste, par exemple, EthereumEC2-SG. Cela permet aux instances EC2 du groupe de sécurité de communiquer les unes avec les autres.

  4. Choisissez Add Rule (Ajouter une règle).

  5. Pour Type, sélectionnez Tout le trafic. Pour Source, laissez Custom (Personnalisé) sélectionné, puis choisissez le groupe de sécurité de l'équilibreur de charge d'application à partir de la liste, par exemple, EthereumALB-SG. Cela permet aux instances EC2 du groupe de sécurité de communiquer avec l'équilibreur de charge d'application.

  6. Choisissez Enregistrer.

Ajouter des données entrantes et modifier des règles sortantes pour le groupe de sécurité de l'équilibreur de charge d'application
  1. Sélectionner le groupe de sécurité des équilibreurs de charge d'application créés précédemment

  2. Dans l'onglet Inbound (Entrant), choisissez Edit (Modifier), puis ajoutez les règles entrantes suivantes :

    1. Pour Type, sélectionnez All traffic (Tout le trafic). Pour Source, laissez Custom (Personnalisé) sélectionné, puis choisissez le groupe de sécurité que vous modifiez actuellement dans la liste, par exemple, EthereumALB-SG. Cela permet à l'équilibreur de charge d'application de communiquer avec lui-même et avec l'hôte bastion.

    2. Choisissez Add Rule (Ajouter une règle).

    3. Pour Type, sélectionnez Tout le trafic. Pour Source, laissez Custom (Personnalisé) sélectionné, puis choisissez le groupe de sécurité pour les instances EC2 de la liste, par exemple, EthereumEC2-SG. Cela permet aux instances EC2 du groupe de sécurité de communiquer avec l'équilibreur de charge d'application et avec l’hôte bastion.

    4. Choisissez Add Rule (Ajouter une règle).

    5. Pour Type, choisissez SSH. Dans Source, sélectionnez My IP (Mon adresse IP), qui détecte l’adresse IP CIDR de votre ordinateur et la fournit.

      Important

      Cette règle permet à l'hôte bastion d'accepter le trafic SSH depuis votre ordinateur. Ainsi, ce dernier peut utiliser l'hôte bastion pour afficher les interfaces web et se connecter aux instances EC2 sur le réseau Ethereum. Pour permettre à d'autres personnes de se connecter au réseau Ethereum, ajoutez-les en tant que sources dans cette règle. Autoriser uniquement le trafic entrant vers des sources approuvées.

    6. Choisissez Enregistrer.

  3. Sous l'onglet Outbound (Sortant), choisissez Edit (Modifier) et supprimer la règle qui a été créée automatiquement pour autoriser le trafic sortant pour toutes les adresses IP.

  4. Choisissez Add Rule (Ajouter une règle).

  5. Pour Type, sélectionnez Tout le trafic. Pour Destination, laissez Custom (Personnalisé) sélectionné, puis choisissez le groupe de sécurité pour les instances EC2 de la liste. Cela autorise les connexions sortantes de l'équilibreur de charge d'application et e l’hôte bastion pour les instances EC2 du réseau Ethereum.

  6. Choisissez Add Rule (Ajouter une règle).

  7. Pour Type, sélectionnez Tout le trafic. Pour Destination, laissez Custom (Personnalisé) sélectionné, puis choisissez le groupe de sécurité que vous modifiez actuellement dans la liste, par exemple, EthereumALB-SG. Cela permet à l'équilibreur de charge d'application de communiquer avec lui-même et avec l'hôte bastion.

  8. Choisissez Enregistrer.

Création d'un rôle IAM pour Amazon ECS et d'un profil d'instance EC2

Lorsque vous utilisez ce modèle, vous spécifiez un rôle IAM pour Amazon ECS et un profil d'instance EC2. Les politiques d'autorisation associées à ces rôles permettent aux ressources et aux instances AWS de votre cluster d'interagir avec d'autres ressources AWS. Pour plus d'informations, veuillez consulter Rôles IAM dans le Guide de l'utilisateur IAM. Vous configurez le rôle IAM pour Amazon ECS et le profil d'instance EC2 à l'aide de la console IAM (https://console.aws.amazon.com/iam/).

Pour créer le rôle IAM pour Amazon ECS
  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation, choisissez Rôles, puis Créer un rôle.

  3. Sous Select type of trusted entity (Sélectionner le type d'entité de confiance), choisissez AWS service (Service AWS).

  4. Sous Choisir le service qui utilisera ce rôle, choisissez Elastic Container Service.

  5. Sous Select your use case (Sélectionnez votre cas d'utilisation), choisissez Elastic Container Service, Next:Permissions (Suivant : Autorisations).

    AWS console interface for creating a role, with Elastic Container Service selected as the use case.
  6. Pour la politique d'autorisations, laissez la politique par défaut (AmazonEC2 ContainerServiceRole) sélectionnée, puis choisissez Next:Review.

  7. Dans Nom du rôle, entrez une valeur qui vous aide à identifier le rôle, telle que ECS RoleForEthereum. Pour Role Description (Description du rôle), saisissez un résumé. Notez le nom du rôle pour plus tard.

  8. Sélectionnez Créer un rôle.

  9. Sélectionnez le rôle que vous venez de créer dans la liste. Si votre compte comporte de nombreux rôles, vous pouvez rechercher le nom du rôle.

    AWSIAM console showing a role named "ECSRoleForEtherum" with its description.
  10. Copiez la valeur Role ARN (ARN du rôle) et enregistrez-la afin de pouvoir la copier à nouveau. Vous aurez besoin de cet ARN lorsque vous créerez le réseau Ethereum.

    AWSIAM role summary page showing role ARN, description, and attached policies.

Le profil d'instance EC2 que vous spécifiez dans le modèle est utilisé par les instances EC2 du réseau Ethereum pour interagir avec d'autres AWS services. Vous créez une stratégie d'autorisation pour le rôle, puis créez le rôle (qui crée automatiquement un profil d'instance du même nom), et enfin vous attachez la stratégie d'autorisation au rôle.

Pour créer un profil d'instance EC2
  1. Dans le panneau de navigation, choisissez Policies (Politiques), puis Create policy (Créer une politique).

  2. Choisissez JSON et remplacez la déclaration de stratégie par défaut par le code JSON suivant :

    { "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. Choisissez Examiner une politique.

  4. Dans Nom, entrez une valeur qui vous aide à identifier cette politique d'autorisation, par exemple EthereumPolicyForEC2. Sous Description, saisissez un résumé. Choisissez Créer une politique.

    AWS console showing Create policy page with name, description, and service permissions.
  5. Choisissez Roles (Rôles), Create role (Créer un rôle).

  6. Choisissez EC2, Next: Permissions (Suivant : Autorisations).

  7. Dans le champ Rechercher, entrez le nom de la politique d'autorisation que vous avez créée précédemment, par exemple EthereumPolicyForEC2.

  8. Sélectionnez la case à cocher de la stratégie que vous avez créée précédemment, puis choisissez Next: Review (Suivant : Vérification).

    AWS console showing Create role page with EthereumPolicyForEC2 policy selected.
  9. Dans Nom du rôle, entrez une valeur qui vous aide à identifier le rôle, par exemple EC2. RoleForEthereum Pour Role description (Description du rôle, saisissez un résumé. Choisissez Create role (Créer un rôle).

  10. Sélectionnez le rôle que vous venez de créer dans la liste. Si votre compte possède de nombreux rôles, vous pouvez saisir le nom du rôle dans le champ Search (Recherche).

    AWSIAM interface showing a role named EC2RoleforEther with associated description and trusted entity.
  11. Copiez la valeur de l'Instance Profile ARN (ARN de profil d'instance) et enregistrez-le afin de pouvoir le copier à nouveau. Vous aurez besoin de cet ARN lorsque vous créerez le réseau Ethereum.

    AWSIAM role summary page showing Role ARN and Instance Profile ARNs fields.

Création d'un hôte bastion

Dans ce didacticiel, vous créez un bastion host (hôte bastion). Il s'agit d'une instance EC2 que vous utilisez pour vous connecter aux interfaces Web et aux instances de votre réseau Ethereum. Son seul but est de transférer le trafic SSH de clients approuvés à l’extérieur du VPC, afin qu'ils puissent accéder aux ressources du réseau Ethereum.

Vous configurez l'hôte bastion, car l'équilibreur de charge d'application créé par le modèle est interne, ce qui signifie qu'il achemine uniquement les adresses IP internes. L'hôte bastion :

  • Dispose d'une adresse IP interne que l'équilibreur de charge d'application reconnaît, car vous la lancez dans le deuxième sous-réseau public que vous avez créé précédemment.

  • Dispose d'une adresse IP publique que le sous-réseau attribue, accessible par des sources approuvées hors du VPC.

  • Est associé au groupe de sécurité de l'équilibreur de charge d'application que vous avez créé précédemment, qui dispose d'une règle entrante qui autorise le trafic SSH (port 22) à partir de clients approuvés.

Pour pouvoir accéder au réseau Ethereum, les clients de approuvés doivent être configurés pour se connecter via l'hôte bastion. Pour plus d’informations, consultez Se connecter à l'hôte Bastion EthStats et l' EthExplorer utiliser. Un hôte bastion est une approche. Vous pouvez utiliser n'importe quelle approche qui fournit l'accès des clients approuvés aux ressources privées dans un VPC.

Création d'un hôte bastion
  1. Suivez les cinq premières étapes pour lancer une instance dans le guide de l'utilisateur Amazon EC2.

  2. Choisissez Modifier les détails de l'instance. Pour Network (Réseau), choisissez le VPC que vous avez créé précédemment. Pour Subnet (Sous-réseau), sélectionnez le deuxième sous-réseau public que vous avez créé précédemment. Conservez les valeurs par défaut de tous les autres paramètres.

  3. Confirmez la modification lorsque vous y êtes invité, puis choisissez Review and Launch (Vérifier et lancer).

  4. Sélectionnez Edit security groups (Modifier les groupes de sécurité). Pour Attribuer un groupe de sécurité, choisissez Select an existing security group (Sélectionner un groupe de sécurité existant).

  5. Dans la liste des groupes de sécurité, sélectionnez le groupe de sécurité pour l'équilibreur de charge d'application que vous avez créé précédemment, puis choisissez Review and Launch (Vérifier et lancer).

  6. Choisissez Lancer.

  7. Notez l'ID de l'instance. Vous en aurez besoin plus tard quand vous Se connecter à l'hôte Bastion EthStats et l' EthExplorer utiliser.

    Green checkmark indicating successful instance launch with partially obscured instance ID.