Configuración de requisitos previos - AWS Blockchain Templates

AWSBlockchain Templates se suspendió el 30 de abril de 2019. No habrá más actualizaciones de este servicio ni de esta documentación complementaria. Para disfrutar de la mejor experiencia de cadena de bloques gestionada en AWS, le recomendamos que utilice Amazon Managed Blockchain (AMB). Para obtener más información sobre cómo empezar a utilizar Amazon Managed Blockchain, consulte nuestro taller sobre Hyperledger Fabric o nuestro blog sobre la implementación de un nodo de Ethereum. Si tiene preguntas AMB o necesita más ayuda, póngase en contacto con AWS Supporto tu AWS equipo de cuentas.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de requisitos previos

Para la configuración de la AWS Blockchain Template para Ethereum especificada en este tutorial, es necesario hacer lo siguiente:

Creación de una VPC y de subredes

AWS Blockchain Template para Ethereum lanza recursos en una red virtual que haya definido mediante Amazon Virtual Private Cloud (Amazon VPC). La configuración especificada en este tutorial crea un equilibrador de carga de aplicaciones que requiere dos subredes públicas en zonas de disponibilidad distintas. Además, se requiere una subred privada para las instancias de contenedor y la subred debe estar en la misma zona de disponibilidad que el equilibrador de carga de aplicaciones. En primer lugar, utilice el Asistente para VPC para crear una subred pública y una subred privada en la misma zona de disponibilidad. A continuación, cree una segunda subred pública dentro de esta VPC en una zona de disponibilidad distinta.

Para obtener más información, consulte ¿Qué es Amazon VPC? en la Guía del usuario de Amazon VPC.

Utilice la consola de Amazon VPC (https://console.aws.amazon.com/vpc/) para crear la dirección IP elástica, la VPC y la subred, tal y como se describe a continuación.

Para crear una dirección IP elástica
  1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.

  2. Elija Elastic IPs (Direcciones IP elásticas), Allocate new address (Asignar nueva dirección), Allocate (Asignar).

  3. Anote la dirección IP elástica que ha creado y elija Close (Cerrar).

  4. En la lista de direcciones IP elásticas, busque el Allocation ID (ID de asignación) de la dirección IP elástica creada anteriormente. Lo utilizará al crear la VPC.

Para crear la VPC
  1. En la barra de navegación, seleccione una región para la VPC. Cada VPC corresponde a una región específica, así que deberá seleccionar la misma región en la que creó el par de claves y en la que va a lanzar la pila de Ethereum. Para obtener más información, consulte Creación de un par de claves.

  2. En el panel de VPC, seleccione Start VPC Wizard.

  3. En la página Step 1: Select a VPC Configuration (Paso 1: Seleccionar una configuración de la VPC), elija VPC with Public and Private Subnets (VPC con subredes públicas y privadas), Select (Seleccionar).

  4. En la página Step 2: VPC with Public and Private Subnets (Paso 2: VPC con subredes públicas y privadas), deje los valores predeterminados para IPv4 CIDR block (Bloque de CIDR IPv4) e IPv6 CIDR block (Bloque de CIDR IPv6). En VPC name (Nombre de la VPC), escriba un nombre fácil de recordar.

  5. En Public subnet's IPv4 CIDR (CIDR de IPv4 de la subred pública), deje el valor predeterminado. En Availability Zone (Zona de disponibilidad), elija una zona. En Public subnet name (Nombre de la subred pública), escriba un nombre fácil de recordar.

    Debe especificar esta subred como una de las dos primeras subredes del equilibrador de carga de aplicaciones cuando utilice la plantilla.

    Tenga en cuenta la zona de disponibilidad de esta subred porque selecciona la misma zona de disponibilidad para la subred privada y otra distinta para la otra subred pública.

  6. En Private subnet's IPv4 CIDR (CIDR de IPv4 de la subred privada), deje el valor predeterminado. En Availability Zone (Zona de disponibilidad), seleccione la misma zona de disponibilidad que en el paso anterior. En Private subnet name (Nombre de la subred privada), escriba un nombre fácil de recordar.

  7. En Elastic IP Allocation ID (ID de asignación de IP elástica), seleccione la dirección IP elástica que creó anteriormente.

  8. Deje los valores predeterminados de las demás opciones.

  9. Seleccione Crear VPC.

    El siguiente ejemplo muestra una VPC EthereumNetworkVPC con una subred pública EthereumPubSub1 y una subred privada 1. EthereumPvtSub La subred pública utiliza la zona de disponibilidad us-west-2a.

    VPC configuration form with public and private subnet details for EthereumVPC.
Para crear la segunda subred pública en otra zona de disponibilidad
  1. Elija Subnets (Subredes) y, a continuación, seleccione de la lista la subred pública que creó anteriormente en la lista. Seleccione la pestaña Route Table (Tabla de enrutamiento) y anote el ID de la Route table (Tabla de enrutamiento). Especifique esta misma tabla de enrutamiento para la segunda subred pública a continuación.

  2. Elija Create Subnet (Crear subred).

  3. En Name tag (Etiqueta de nombre), introduzca un nombre para la subred. Este nombre se utilizará más adelante al crear el host bastión en esta red.

  4. En VPC, seleccione la VPC que creó anteriormente.

  5. En Availability Zone (Zona de disponibilidad), seleccione una zona distinta de la que seleccionó para la primera subred pública.

  6. En IPv4 CIDR block (Bloque de CIDR IPv4), escriba 10.0.2.0/24.

  7. Elija Sí, crear. La subred se agrega a la lista de subredes.

  8. Con la subred seleccionada en la lista, elija Subnet Actions (Acciones de subred), Modify auto-assign IP settings (Modificar configuración de asignación automática de IP). Seleccione Auto-assign IPs (Asignar automáticamente direcciones IP), Save (Guardar), Close (Cerrar). Esto permite que el host bastión obtenga una dirección IP pública al crearla en esta subred.

  9. En la pestaña Route Table (Tabla de enrutamiento), elija Edit (Editar). En Change to (Cambiar a), seleccione el ID de la tabla de enrutamiento que anotó anteriormente y elija Save (Guardar).

Ahora debería ver tres subredes para la VPC que ha creado anteriormente. Anote los nombres y los ID de las subredes para que pueda especificarlos utilizando la plantilla.

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

Creación de los grupos de seguridad

Los grupos de seguridad funcionan como firewalls que controlan el tráfico entrante y saliente de los recursos. Cuando se utiliza la plantilla para crear una red Ethereum en un clúster de Amazon ECS, se deben especificar dos grupos de seguridad:

  • Un grupo de seguridad para las instancias EC2 que controla el tráfico entrante y saliente de las instancias EC2 del clúster.

  • Un grupo de seguridad para el equilibrador de carga de aplicaciones que controla el tráfico entre el equilibrador de carga de aplicaciones, las instancias EC2 y el host bastión. Asocie este grupo de seguridad también con el host bastión.

Cada grupo de seguridad tiene reglas que permiten la comunicación entre el equilibrador de carga de aplicaciones y las instancias EC2, así como otras reglas mínimas. Para ello, es necesario que los grupos de seguridad se hagan referencia entre sí. Por este motivo, primero debe crear los grupos de seguridad y, a continuación, actualizarlos con las reglas apropiadas.

Para crear dos grupos de seguridad
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Security Groups, Create Security Group.

  3. En Security group name (Nombre del grupo de seguridad), escriba un nombre para el grupo de seguridad que sea fácil de identificar y que lo distinga de los demás, como, por ejemplo, EthereumEC2-SG o EthereumALB-SG. Utilizará estos nombres más adelante. En Description (Descripción), escriba un breve resumen.

  4. En VPC, seleccione la VPC que creó anteriormente.

  5. Seleccione Crear.

  6. Repita los pasos anteriores para crear el otro grupo de seguridad.

Adición de reglas de entrada al grupo de seguridad para las instancias EC2
  1. Seleccione el grupo de seguridad para las instancias EC2 que creó anteriormente.

  2. En la pestaña Inbound (Entrada), seleccione Edit (Editar).

  3. En Tipo, seleccione Todo el tráfico. En Source (Origen), deje seleccionado Custom (Personalizado) y, a continuación, elija el grupo de seguridad que está editando en la lista, por ejemplo, EthereumEC2-SG. Esto permite que las instancias EC2 del grupo de seguridad se comuniquen entre sí.

  4. Seleccione Add Rule (Agregar regla).

  5. En Tipo, seleccione Todo el tráfico. En Source (Origen), deje seleccionado Custom (Personalizado) y, a continuación, elija el grupo de seguridad para el equilibrador de carga de aplicaciones en la lista, por ejemplo, EthereumALB-SG. Esto permite que las instancias EC2 del grupo de seguridad se comuniquen con el equilibrador de carga de aplicaciones.

  6. Seleccione Guardar.

Adición de las reglas de entrada y edición de las reglas de salida del grupo de seguridad del equilibrador de carga de aplicaciones
  1. Seleccione el grupo de seguridad para los equilibradores de carga de aplicaciones que creó anteriormente.

  2. En la pestaña Inbound (Entrada), elija Edit (Editar) y, a continuación, agregue las reglas de entrada siguientes:

    1. En Tipo, seleccione Todo el tráfico. En Source (Origen), deje seleccionado Custom (Personalizado) y, a continuación, elija el grupo de seguridad que está editando actualmente en la lista, por ejemplo, EthereumALB-SG. Esto permite que el equilibrador de carga de aplicaciones se comunique consigo mismo y con el host bastión.

    2. Seleccione Add Rule (Agregar regla).

    3. En Tipo, seleccione Todo el tráfico. En Source (Origen), deje seleccionado Custom (Personalizado) y, a continuación, elija el grupo de seguridad para las instancias EC2 de la lista, por ejemplo EthereumEC2-SG. Esto permite que las instancias EC2 del grupo de seguridad se comuniquen con el equilibrador de carga de aplicaciones y el host bastión.

    4. Seleccione Add Rule (Agregar regla).

    5. En Tipo, seleccione SSH. En Source (Origen), seleccione My IP (Mi IP), que detecta el CIDR de la IP de su equipo y lo escribe.

      importante

      Esta regla permite que el host bastión acepte tráfico SSH desde su equipo, lo que le permite usar el host bastión para ver interfaces web y conectarse a instancias EC2 en la red Ethereum. Para permitir que otros se conecten a la red Ethereum, agréguelos como orígenes a esta regla. Permitir solo el tráfico entrante a orígenes de confianza.

    6. Seleccione Guardar.

  3. En la pestaña Outbound (Salida), elija Edit (Editar) y elimine la regla que se creó automáticamente para permitir el tráfico saliente con destino a todas las direcciones IP.

  4. Seleccione Add Rule (Agregar regla).

  5. En Tipo, seleccione Todo el tráfico. En Destination (Destino), deje Custom (Personalizado) seleccionado y, a continuación, elija el grupo de seguridad para las instancias EC2 de la lista. Esto permite las conexiones salientes desde el equilibrador de carga de aplicaciones y el host bastión a instancias EC2 en la red Ethereum.

  6. Seleccione Add Rule (Agregar regla).

  7. En Tipo, seleccione Todo el tráfico. En Destination (Destino), deje Custom (Personalizado) seleccionado y, a continuación, elija el grupo de seguridad que está editando actualmente de la lista, por ejemplo, EthereumALB-SG. Esto permite que el equilibrador de carga de aplicaciones se comunique consigo mismo y con el host bastión.

  8. Seleccione Guardar.

Creación de un rol de IAM; para Amazon ECS; y un perfil de instancia EC2

Cuando se utiliza esta plantilla, se especifica un rol de IAM; para Amazon ECS; y un perfil de instancia EC2. Las políticas de permisos asociadas a estos roles permiten a los recursos de AWS y a las instancias del clúster interactuar con otros recursos de AWS. Para obtener más información, consulte Roles de IAM en la Guía del usuario de IAM. El rol de IAM para Amazon ECS y el perfil de instancia de EC2 se configuran mediante la consola de IAM (https://console.aws.amazon.com/iam/).

Crear el rol de IAM para Amazon ECS
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, elija Roles, Crear rol.

  3. En Select type of trusted entity (Seleccionar tipo de entidad de confianza), elija AWS service.

  4. En Choose the service that will use this role (Elegir el servicio que usará este rol), elija Elastic Container Service.

  5. En Select your use case (Seleccione su caso de uso), elija Elastic Container Service (Servicio de contenedor elástico), Next:Permissions (Siguiente: Permisos).

    AWS console interface for creating a role, with Elastic Container Service selected as the use case.
  6. Para la política de permisos, deje seleccionada la política predeterminada (AmazonEC2 ContainerServiceRole) y elija Next:Review.

  7. En Nombre del rol, introduzca un valor que le ayude a identificar el rol, como ECS. RoleForEthereum En Role Description (Descripción del rol), escriba un breve resumen. Anote el nombre del rol para consultarlo más adelante.

  8. Elija Crear rol.

  9. Seleccione en la lista el rol que acaba de crear. Si su cuenta tiene varios roles, puede buscar el nombre de rol.

    AWSIAM console showing a role named "ECSRoleForEtherum" with its description.
  10. Copie el valor de Role ARN (ARN del rol) y guárdelo donde pueda copiarlo de nuevo. Necesitará este ARN al crear la red Ethereum.

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

Las instancias EC2 de la red Ethereum asumen el perfil de instancia EC2 que especifique en la plantilla para interactuar con otros AWS servicios. Primero debe crear una política de permisos para el rol, a continuación, crear el rol (que crea automáticamente un perfil de instancia con el mismo nombre) y, por último, asociar la política de permisos al rol.

Para crear un perfil de instancia EC2
  1. En el panel de navegación, seleccione Policies (Políticas), Create policy (Crear política).

  2. Elija JSON y sustituya la instrucción de política predeterminada por la siguiente política 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. Elija Revisar política.

  4. En Nombre, introduce un valor que te ayude a identificar esta política de permisos, por ejemploEthereumPolicyFor, EC2. En Description (Descripción), escriba un breve resumen. Elija Crear política.

    AWS console showing Create policy page with name, description, and service permissions.
  5. Elija Roles, Crear rol.

  6. Elija EC2, Next: Permissions (Siguiente: Permisos).

  7. En el campo de búsqueda, introduzca el nombre de la política de permisos que creó anteriormente, por ejemplo, EthereumPolicyForEC2.

  8. Seleccione la marca de verificación situada junto a la política que ha creado antes y elija Next: Review (Siguiente: Revisar).

    AWS console showing Create role page with EthereumPolicyForEC2 policy selected.
  9. En Nombre del rol, introduzca un valor que le ayude a identificar el rol, por ejemplo RoleForEthereumEC2. En Role description (Descripción del rol), escriba un breve resumen. Elija Create role (Crear rol).

  10. Seleccione en la lista el rol que acaba de crear. Si su cuenta tiene muchos roles, puede escribir el nombre del rol en el campo Search (Buscar).

    AWSIAM interface showing a role named EC2RoleforEther with associated description and trusted entity.
  11. Copie el valor de Instance Profile ARN (ARN del perfil de instancia) y guárdelo donde pueda copiarlo de nuevo. Necesitará este ARN al crear la red Ethereum.

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

Creación de un host bastión

En este tutorial, creará un host bastión. Se trata de una instancia EC2 que se utiliza para conectarse a las interfaces web e instancias de la red de Ethereum. Su único propósito es reenviar tráfico SSH desde clientes de confianza fuera de la VPC para que puedan acceder a los recursos de red de Ethereum.

El host bastión se configura porque el equilibrador de carga de aplicaciones que crea la plantilla es interno, lo que significa que solo enruta las direcciones IP internas. El host bastión:

  • Tiene una dirección IP interna que el equilibrador de carga de aplicaciones reconoce porque la lanza en la segunda subred pública creada anteriormente.

  • Tiene una dirección IP pública que asigna la subred, a la que pueden acceder orígenes de confianza fuera de la VPC.

  • Está asociado con el grupo de seguridad para el equilibrador de carga de aplicaciones creado anteriormente, que tiene una regla de entrada que permite el tráfico SSH (puerto 22) de clientes de confianza.

Para poder acceder a la red Ethereum, los clientes de confianza tienen que configurarse para conectarse a través del host bastión. Para obtener más información, consulte Conectarse EthStats a Bastion Host y EthExplorer usarlo. Un host bastión es un enfoque. Puede utilizar cualquier enfoque que proporcione acceso desde clientes de confianza a recursos privados dentro de una VPC.

Para crear un host bastión
  1. Siga los cinco primeros pasos para lanzar una instancia de la Guía del usuario de Amazon EC2.

  2. Elija Edit Instance Details. En Network (Red), elija la VPC que creó anteriormente, en Subnet (Subred) seleccione la segunda subred pública que creó anteriormente. Deje el resto de opciones con sus valores predeterminados.

  3. Confirme el cambio cuando se le solicite y, a continuación, elija Review and Launch (Revisar y lanzar).

  4. Elija Edit Security Groups (Editar grupos de seguridad). En Assign a security group (Asignar un grupo de seguridad), seleccione Select an existing security group (Seleccionar un grupo de seguridad existente).

  5. Desde la lista de grupos de seguridad, seleccione el grupo de seguridad para el equilibrador de carga de aplicaciones que creó anteriormente y, a continuación, elija Revisar y lanzar.

  6. Elija Iniciar.

  7. Anote el ID de la instancia. Lo necesitará más tarde cuando Conectarse EthStats a Bastion Host y EthExplorer usarlo.

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