

AWS Blockchain 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 Managed Blockchain AWS, le recomendamos que utilice [Amazon Managed Blockchain (AMB).](https://aws.amazon.com/managed-blockchain/) Para obtener más información sobre cómo empezar a utilizar Amazon Managed Blockchain, consulte nuestro [taller sobre Hyperledger Fabric](https://catalog.us-east-1.prod.workshops.aws/workshops/008da2cb-8454-42d0-877b-bc290bff7fcf/en-US) o nuestro [blog sobre la implementación de un nodo de Ethereum](https://aws.amazon.com/blogs/database/deploy-an-ethereum-node-on-amazon-managed-blockchain/). Si tienes preguntas sobre AMB o necesitas más ayuda, [ponte en contacto con nuestro Soporte](https://console.aws.amazon.com/support/home#/case/create?issueType=technical) equipo de AWS 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.

# AWS Blockchain Templates y sus características
<a name="blockchain-template-features"></a>

En esta sección, se proporcionan enlaces para que comience a crear una red de cadena de bloques inmediatamente, así como información sobre las opciones de configuración y los requisitos previos para la configuración de la red en AWS.

Están disponibles las siguientes plantillas:
+ [AWS Blockchain Template para Ethereum](https://docs.aws.amazon.com/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html)
+ [AWS Blockchain Template para Hyperledger Fabric](https://docs.aws.amazon.com/blockchain-templates/latest/developerguide/blockchain-templates-hyperledger.html)

AWS Blockchain Templates está disponible en las siguientes regiones:
+ Región Oeste de EE. UU. (Oregón) (us-west-2)
+ Región Este de EE. UU. (Norte de Virginia) (us-east-1)
+ Región Este de EE. UU. (Ohio) (us-east-2)

**nota**  
Si se ejecuta una plantilla en una región distinta de las mencionadas arriba, se lanzarán recursos en la región Este de EE. UU. (Norte de Virginia) (us-east-1).

# Uso de AWS Blockchain Template para Ethereum
<a name="blockchain-templates-ethereum"></a>

Ethereum es un marco de trabajo de cadena de bloques que administra contratos inteligentes mediante Solidity, un lenguaje específico de Ethereum. Homestead es la versión más reciente de Ethereum. Para obtener más información, consulte la [documentación de Ethereum Homestead](http://www.ethdocs.org/en/latest/) y la documentación de [Solidity](https://solidity.readthedocs.io/en/v0.4.21/#).

## Enlaces para el lanzamiento
<a name="blockchain-ethereum-launch"></a>

Consulte [Getting Started with AWS Blockchain Templates](https://aws.amazon.com/blockchain/templates/getting-started/) para ver los enlaces que se CloudFormation pueden lanzar en regiones específicas con las plantillas de Ethereum.

## Opciones de Ethereum
<a name="blockchain-ethereum-options"></a>

Al configurar la red Ethereum con la plantilla, debe elegir opciones que determinan los requisitos siguientes:
+ [Elección de la plataforma de contenedores](#blockchain-ethereum-platform)
+ [Elección de una red de Ethereum pública o privada](#blockchain-private-public)
+ [Cambio de las cuentas predeterminadas y la frase mnemotécnica](#blockchain-ethereum-mnemonic)

### Elección de la plataforma de contenedores
<a name="blockchain-ethereum-platform"></a>

Las AWS Blockchain Templates utilizan contenedores de Docker almacenados en Amazon ECR para implementar un software de cadena de bloques. La AWS Blockchain Template para Ethereum ofrece dos opciones de **plataforma de contenedores**:
+ **ecs**: especifica que Ethereum se ejecuta en un clúster de EC2 instancias de Amazon de Amazon ECS.
+ **docker-local**: especifica que Ethereum se ejecuta en una sola instancia. EC2

#### Uso de la plataforma de contenedores Amazon ECS
<a name="blockchain-ethereum-ecs"></a>

Con Amazon ECS, crea su red Ethereum en un clúster de ECS compuesto por varias EC2 instancias, con un Application Load Balancer y recursos relacionados. Para obtener más información sobre cómo utilizar la configuración de Amazon ECS, consulte el tutorial [Introducción a AWS Blockchain Templates](blockchain-templates-getting-started.md).

El siguiente diagrama muestra una red de Ethereum creada utilizando la plantilla con la opción de plataforma de contenedores ECS:

![\[AWS diagram showing VPC with public and private subnets, load balancers, and Ethereum nodes in ECS containers.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ethereum-ecs-arch.png)


#### Uso de la plataforma docker-local
<a name="blockchain-ethereum-docker-local"></a>

Como alternativa, puedes lanzar contenedores de Ethereum en una sola EC2 instancia de Amazon. Todos los contenedores se ejecutan en una sola EC2 instancia. Se trata de una configuración simplificada.

El siguiente diagrama muestra una red de Ethereum creada utilizando la plantilla con la opción de plataforma de contenedores docker-local:

![\[Diagram of Ethereum network on AWS with VPC, EC2 instance, containers, and ECR registry.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ethereum-docker-local-arch.png)


### Elección de una red de Ethereum pública o privada
<a name="blockchain-private-public"></a>

Si se elige un valor distinto de 1-4 para **Ethereum Network ID** (ID de la red Ethereum), se crean nodos privados de Ethereum que se ejecutan dentro de la red que se defina, utilizando los parámetros de red privada que se especifiquen.

Si se elige un valor de 1-4 para **ID de la red Ethereum**, los nodos de Ethereum que se crean se unen a la red Ethereum pública. Puede hacer caso omiso de la configuración de red privada y de sus valores predeterminados. Si decide unir los nodos de Ethereum a la red Ethereum pública, asegúrese de que es posible tener acceso a los servicios adecuados de la red a través de Internet.

### Cambio de las cuentas predeterminadas y la frase mnemotécnica
<a name="blockchain-ethereum-mnemonic"></a>

Una frase mnemotécnica es un conjunto aleatorio de palabras que puedes usar para generar carteras de Ethereum (es decir, pares de private/public claves) para las cuentas asociadas en cualquier red. La frase mnemotécnica se puede utilizar para acceder a Ether para cuentas asociadas. Creamos una frase mnemotécnica predeterminada asociada a las cuentas predeterminadas que utiliza la plantilla de Ethereum.

**aviso**  
Utilice las cuentas predeterminadas y la frase mnemotécnica asociada solo con fines de prueba. No envíe Ether real usando el conjunto predeterminado de cuentas porque cualquier persona con acceso a la frase mnemotécnica puede acceder o robar Ether de las cuentas. En su lugar, especifique cuentas personalizadas para fines de producción. La frase mnemotécnica asociada a la cuenta predeterminada es `outdoor father modify clever trophy abandon vital feel portion grit evolve twist`.

## Requisitos previos
<a name="blockchain-ethereum-prereq"></a>

Cuando se configura la red de Ethereum utilizando la AWS Blockchain Template para Ethereum, se deben cumplir los requisitos mínimos que se indican a continuación. La plantilla requiere los AWS componentes enumerados para cada una de las siguientes categorías:

**Topics**
+ [Requisitos previos para acceder a los recursos de Ethereum](#blockchain-ethereum-prereq-access)
+ [Requisitos previos de IAM](#blockchain-ethereum-prereq-iam)
+ [Requisitos previos del grupo de seguridad](#blockchain-ethereum-prereq-sec)
+ [Requisitos previos de VPC](#blockchain-ethereum-prereq-vpc)
+ [Ejemplos de permisos de IAM para el perfil de la EC2 instancia y el rol de ECS](#blockchain-ethereum-iam-examples)

### Requisitos previos para acceder a los recursos de Ethereum
<a name="blockchain-ethereum-prereq-access"></a>


| Requisito previo | Para la plataforma ECS | Para docker-local | 
| --- | --- | --- | 
|  Un EC2 key pair de Amazon que puedes usar para acceder a EC2 las instancias. La clave debe existir en la misma región que el clúster y los demás recursos de ECS.  |  ✔  |  ✔  | 
|  Un componente con conexión a Internet, como un host bastión o un equilibrador de carga con conexión a Internet, con una dirección interna desde la que se permite el tráfico en el equilibrador de carga de aplicaciones. Esto es necesario con la plataforma ECS porque la plantilla crea un equilibrador de carga interno por razones de seguridad. Esto es obligatorio con la plataforma docker-local cuando la EC2 instancia se encuentra en una subred privada, lo que recomendamos. Para obtener información sobre la configuración de un host bastión, consulte [Creación de un host bastión](blockchain-template-getting-started-prerequisites.md#blockchain-templates-bastion-host).  |  ✔  |  ✔ (con subred privada)  | 

### Requisitos previos de IAM
<a name="blockchain-ethereum-prereq-iam"></a>


| Requisito previo | Para la plataforma ECS | Para docker-local | 
| --- | --- | --- | 
|  Una entidad principal (usuario o grupo) de IAM que tenga permisos para trabajar con todos los servicios relacionados.  |  ✔  |  ✔  | 
|  Un perfil de EC2 instancia de Amazon con los permisos adecuados para que EC2 las instancias interactúen con otros servicios. Para obtener más información, consulte [To create an EC2 instance profile](blockchain-template-getting-started-prerequisites.md#create-ec2-role).   |  ✔  |  ✔  | 
|  Un rol de IAM con los permisos adecuados para que Amazon ECS interactúe con los demás servicios. Para obtener más información, consulte [Creación del rol y los permisos de ECS](#blockchain-ethereum-ecs-role).  |  ✔  |    | 

### Requisitos previos del grupo de seguridad
<a name="blockchain-ethereum-prereq-sec"></a>


| Requisito previo | Para la plataforma ECS | Para docker-local | 
| --- | --- | --- | 
| Un grupo de seguridad para EC2 instancias, con los siguientes requisitos: | ✔ |  ✔  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html)  | ✔ |  ✔  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html)  | ✔ |  ✔  | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html) | ✔ |  | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html) |  | ✔ | 
|  Un grupo de seguridad para el equilibrador de carga de aplicaciones, con los siguientes requisitos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html)  |  ✔  |    | 

### Requisitos previos de VPC
<a name="blockchain-ethereum-prereq-vpc"></a>


| Requisito previo | Para la plataforma ECS | Para docker-local | 
| --- | --- | --- | 
|  Una dirección IP elástica, que se utiliza para tener acceso a los servicios de Ethereum.  |  ✔  |  ✔  | 
|  Una subred para ejecutar EC2 instancias. Recomendamos el uso de una subred privada.  |  ✔  |  ✔  | 
|  Dos subredes con acceso público. Cada subred debe estar en zonas de disponibilidad diferentes entre sí, y una de ellas debe estar en la misma zona de disponibilidad que la subred para las instancias. EC2   |  ✔  |    | 

### Ejemplos de permisos de IAM para el perfil de la EC2 instancia y el rol de ECS
<a name="blockchain-ethereum-iam-examples"></a>

Al utilizar la plantilla, debe especificar un ARN de perfil de EC2 instancia como uno de los parámetros. Si utiliza la plataforma de contenedores ECS, también debe especificar el ARN de un rol de ECS. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *Guía del usuario de IAM*. Utilice las instrucciones de política y los procedimientos siguientes como punto de partida para la creación de los permisos.

#### Ejemplo de política de permisos para el perfil de EC2 instancia
<a name="blockchain-ethereum-ec2-instance"></a>

La siguiente política de permisos muestra las acciones permitidas para el perfil de EC2 instancia al elegir la plataforma de contenedores ECS. Se pueden utilizar las mismas instrucciones de política en una plataforma de contenedores docker-local, quitando las claves de contexto `ecs` para limitar el acceso.

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

#### Creación del rol y los permisos de ECS
<a name="blockchain-ethereum-ecs-role"></a>

Para los permisos asociados a la función de ECS, le recomendamos que comience con la política de EC2 ContainerServiceRole permisos de **Amazon**. Utilice el procedimiento siguiente para crear un rol y asociarle esta política de permisos. Utilice la consola de IAM para ver la mayoría de up-to-date los permisos de esta política.

**Crear el rol de IAM para Amazon ECS**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

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

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

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

1. 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.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ecs-role.png)

1. Para la **política de permisos**, deja seleccionada la política predeterminada (**Amazon EC2 ContainerServiceRole**) y selecciona **Next:Review**.

1. En **Nombre del rol**, ingresa un valor que te ayude a identificar el rol, por ejemplo. *ECSRoleForEthereum* En **Role Description (Descripción del rol)**, escriba un breve resumen. Anote el nombre del rol para consultarlo más adelante.

1. Elija **Crear rol**.

1. 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.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ecs-role-list.png)

1. 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.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ecs-role-arn.png)

## Conexión a Ethereum Resources
<a name="blockchain-ethereum-connecting"></a>

Cuando la pila raíz que hayas creado con la plantilla muestre **CREATE\$1COMPLETE**, podrás conectarte a los recursos de Ethereum mediante la consola. CloudFormation La forma de conectarse depende de la plataforma de contenedores elegida, ECS o docker-local:
+ **ECS**: la pestaña **Salida** de la pila raíz proporciona enlaces a los servicios que se ejecutan en el equilibrador de carga de aplicaciones. No URLs se puede acceder directamente a ellos por motivos de seguridad. Para conectarse a ellas, puede configurar y utilizar un *host bastión* para que actúe como proxy durante la conexión. Para obtener más información, consulte [Conexiones proxy mediante un host bastión](#ethereum-create-bastion-host) más abajo.
+ **docker-local**: se conecta mediante la dirección IP de la EC2 instancia que aloja los servicios de Ethereum, tal como se indica a continuación. Usa la EC2 consola para buscar la instancia que *ec2-IP-address* creó la plantilla.
  + **EthStats**—Utilice http://*ec2-IP-address*
  + **EthExplorer**—Utilice http: //:8080 *ec2-IP-address*
  + **EthJsonRpc**— Utilice http: //:8545 *ec2-IP-address*

  Si ha especificado una subred pública para **Ethereum Network Subnet ID (ID de subred de la red Ethereum)** (**List of VPC Subnets to use (Lista de subredes de VPC que se van a utilizar)** dentro de la plantilla), puede conectarse directamente. El cliente debe ser un origen de confianza de tráfico entrante para SSH (puerto 22), así como los puertos de la lista. Esto lo determina el **grupo de EC2 seguridad** que especificó mediante la plantilla de cadena de bloques de AWS para Ethereum.

  Si ha especificado una subred privada, puede configurar y utilizar un *host bastión* para que actúe como proxy en las conexiones con estas direcciones. Para obtener más información, consulte [Conexiones proxy mediante un host bastión](#ethereum-create-bastion-host) más abajo.

### Conexiones proxy mediante un host bastión
<a name="ethereum-create-bastion-host"></a>

En algunas configuraciones, es posible que los servicios de Ethereum no estén disponibles públicamente. En esos casos, puede conectarse a los recursos de Ethereum a través de un *host bastión*. Para obtener más información sobre los hosts bastión, consulte [Arquitectura de host bastión de Linux](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/architecture.html) en la *Guía de inicio rápido del host bastión de Linux*.

El host del bastión es una EC2 instancia. Asegúrese de que se cumplan los siguientes requisitos:
+ La EC2 instancia del host bastión se encuentra dentro de una subred pública con la asignación automática de IP pública habilitada y que tiene una puerta de enlace a Internet. 
+ El host bastión tiene el par de claves que permite conexiones SSH.
+ El host bastión está asociado a un grupo de seguridad que permite el tráfico SSH entrante desde los clientes que se conecten.
+ El grupo de seguridad asignado a los hosts de Ethereum (por ejemplo, Application Load Balancer si ECS es la plataforma de contenedores o la EC2 instancia de host si docker-local es la plataforma de contenedores) permite el tráfico entrante en todos los puertos desde fuentes de la VPC.

Si tiene un host bastión configurado, asegúrese de que los clientes que se conecten utilicen el host bastión como proxy. En el siguiente ejemplo, se muestra cómo establecer una conexión de proxy mediante Mac OS. *BastionIP*Sustitúyala por la dirección IP de la EC2 instancia del host del bastión y *MySshKey.pem* por el archivo de pares de claves que copiaste en el host del bastión.

En la línea de comando, escriba lo siguiente:

```
ssh -i mySshKey.pem  ec2-user@BastionIP -D 9001
```

Así se configura el reenvío de puertos del puerto 9001 de la máquina local al host bastión.

A continuación, configure su navegador o sistema para que utilice el proxy SOCKS para `localhost:9001`. Por ejemplo, si usa Mac OS, seleccione **System preferences (Preferencias del Sistema)**, **Network (Red)**, **Advanced (Avanzado)**, seleccione **SOCKS proxy** y escriba **localhost:9001**.

**Si utilizas la opción FoxyProxy Estándar con Chrome, selecciona **Más herramientas y extensiones**.** En **FoxyProxy Estándar**, selecciona **Detalles**, **Opciones de extensión** y **Añadir nuevo proxy**. Seleccione **Manual Proxy Configuration (Configuración manual del proxy)**. En **Host or IP Address (Host o dirección IP)** escriba **localhost** y en **Port (Puerto)** escriba **9001**. Seleccione **SOCKS Proxy?**, **Save (Guardar)**.

Ahora debería poder conectarse a las direcciones de host enumeradas en la salida de la plantilla.

# Uso de AWS Blockchain Template para Hyperledger Fabric
<a name="blockchain-templates-hyperledger"></a>

Hyperledger Fabric es un marco de trabajo de cadena de bloques que ejecuta contratos inteligentes denominados código de cadena escritos en Go. Es posible crear una red privada con Hyperledger Fabric para limitar los homólogos que se pueden conectar a la red y participar en ella. Para obtener más información sobre Hyperledger Fabric, consulte la documentación de [Hyperledger Fabric.](https://hyperledger-fabric.readthedocs.io/en/release-1.1/) Para obtener más información sobre los códigos de cadena, consulte el tema [Chaincode for Developers](https://hyperledger-fabric.readthedocs.io/en/release-1.1/chaincode4ade.html) en la documentación de [Hyperledger Fabric](https://hyperledger-fabric.readthedocs.io/en/release-1.1/).

La AWS Blockchain Template para Hyperledger Fabric solo es compatible con una plataforma de contenedores *docker-local*, lo que significa que los contenedores de Hyperledger Fabric se implementan en una sola instancia EC2.

## Enlaces para el lanzamiento
<a name="blockchain-hyperledger-launch"></a>

Consulte [Introducción a las plantillas de Blockchain de AWS](https://aws.amazon.com/blockchain/templates/getting-started/) para ver los enlaces que permiten lanzar CloudFormation en regiones específicas mediante las plantillas de Hyperledger Fabric.

## AWS Blockchain Template para componentes de Hyperledger Fabric
<a name="blockchain-hyperledger-architecture"></a>

La AWS Blockchain Template para Hyperledger Fabric crea una instancia EC2 con Docker y lanza una red Hyperledger Fabric utilizando los contenedores de dicha instancia. La red incluye un servicio de orden y tres organizaciones, cada una con un servicio de homólogos. La plantilla también lanza un contenedor de Hyperledger Explorer, que le permite examinar los datos de cadena de bloques. Se lanza un contenedor de servidor de PostgreSQL para admitir Hyperledger Explorer.

El siguiente diagrama muestra una red de Hyperledger Fabric creada con la plantilla:

![\[AWS architecture diagram showing EC2 instance with containers in a VPC, connected to ECR and S3.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/hyperledger-docker-local-arch.png)


## Requisitos previos
<a name="blockchain-hyperledger-prerequisites"></a>

Antes de lanzar una red de Hyperledger Fabric con la plantilla, asegúrese de que se cumplen los requisitos siguientes: 
+ La entidad principal (usuario o grupo) de IAM que utilice debe tener permiso para trabajar con todos los servicios relacionados.
+ Se debe tener acceso a un par de claves que se puede utilizar para obtener acceso a las instancias EC2 (por ejemplo, mediante SSH). La clave debe existir en la misma región que la instancia.
+ Se debe tener un perfil de instancia EC2 con una política de permisos asociada que permita el acceso a Amazon S3 y a Amazon Elastic Container Registry (Amazon ECR) para extraer contenedores. Si desea ver un ejemplo de política de permisos, consulte [Ejemplo de permisos de IAM para el perfil de instancia EC2](#blockchain-hyperledger-ec2profile).
+ Debe tener una red de Amazon VPC con una subred pública o una subred privada con una puerta de enlace NAT y una dirección IP elástica para poder acceder a Amazon S3 CloudFormation y Amazon ECR.
+ Se debe tener un grupo de seguridad de EC2 con reglas de entrada que permitan el tráfico SSH (puerto 22) desde las direcciones IP que necesiten conectarse a la instancia mediante SSH, y lo mismo para los clientes que necesiten conectarse a Hyperledger Explorer (puerto 8080).

### Ejemplo de permisos de IAM para el perfil de instancia EC2
<a name="blockchain-hyperledger-ec2profile"></a>

Debe especificar el ARN de un perfil de instancia EC2 como uno de los parámetros cuando utilice la AWS Blockchain Template para Hyperledger Fabric. Utilice la siguiente instrucción de política como punto de partida para la política de permisos asociada a ese rol y ese perfil de instancia de EC2.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetRepositoryPolicy",
                "ecr:DescribeRepositories",
                "ecr:ListImages",
                "ecr:DescribeImages",
                "ecr:BatchGetImage",
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Conexión a los recursos de Hyperledger Fabric
<a name="blockchain-hyperledger-connecting"></a>

Una vez que la pila raíz creada con la plantilla muestre **CREATE\$1COMPLETE**, puede conectarse a los recursos de Hyperledger Fabric de la instancia EC2. Si ha especificado una subred pública, puede conectarse a la instancia EC2 al igual que haría con cualquier otra instancia EC2. Para obtener más información, consulte [Conexión a la instancia de Linux mediante SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) en la *Guía del usuario de Amazon EC2*.

Si ha especificado una subred privada, puede configurar y utilizar un *host bastión* para que actúe como proxy en las conexiones a los recursos de Hyperledger Fabric. Para obtener más información, consulte [Conexiones proxy mediante un host bastión](blockchain-templates-ethereum.md#ethereum-create-bastion-host) más abajo.

**nota**  
Es posible que observe que la plantilla asigna una dirección IP pública a la instancia EC2 que aloja los servicios de Hyperledger Fabric; sin embargo, esta dirección IP no está accesible públicamente, ya que las políticas de direccionamiento de la subred privada especificada no permiten el tráfico entre esta dirección IP y los orígenes públicos.

### Conexiones proxy mediante un host bastión
<a name="hyperledger-create-bastion-host"></a>

En algunas configuraciones, es posible que los servicios de Hyperledger Fabric no estén disponibles públicamente. En esos casos, puede conectarse a los recursos de Hyperledger Fabric a través de un *host bastión*. Para obtener más información sobre los hosts bastión, consulte [Arquitectura de host bastión de Linux](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/architecture.html) en la *Guía de inicio rápido del host bastión de Linux*.

El host bastión es una instancia EC2. Asegúrese de que se cumplan los siguientes requisitos:
+ La instancia EC2 del host bastión se encuentra dentro de una subred pública con la asignación automática de IP pública habilitada y que tiene una puerta de enlace de Internet. 
+ El host bastión tiene el par de claves que permite conexiones SSH.
+ El host bastión está asociado a un grupo de seguridad que permite el tráfico SSH entrante desde los clientes que se conecten.
+ El grupo de seguridad asignado a los hosts de Hyperledger Fabric (por ejemplo, el equilibrador de carga de aplicaciones si ECS es la plataforma de contenedores, o la instancia EC2 del host si docker-local es la plataforma de contenedores) permite el tráfico entrante en todos los puertos desde los orígenes que se encuentren en la VPC.

Si tiene un host bastión configurado, asegúrese de que los clientes que se conecten utilicen el host bastión como proxy. En el siguiente ejemplo, se muestra cómo establecer una conexión de proxy mediante Mac OS. *BastionIP*Sustitúyala por la dirección IP de la instancia EC2 del host bastión y *MySshKey.pem* por el archivo de pares de claves que copió en el host bastión.

En la línea de comando, escriba lo siguiente:

```
ssh -i mySshKey.pem  ec2-user@BastionIP -D 9001
```

Así se configura el reenvío de puertos del puerto 9001 de la máquina local al host bastión.

A continuación, configure su navegador o sistema para que utilice el proxy SOCKS para `localhost:9001`. Por ejemplo, si usa Mac OS, seleccione **System preferences (Preferencias del Sistema)**, **Network (Red)**, **Advanced (Avanzado)**, seleccione **SOCKS proxy** y escriba **localhost:9001**.

**Si utilizas la opción FoxyProxy Estándar con Chrome, selecciona **Más herramientas** y extensiones.** En **FoxyProxy Estándar**, selecciona **Detalles**, **Opciones de extensión** y **Añadir nuevo proxy**. Seleccione **Manual Proxy Configuration (Configuración manual del proxy)**. En **Host or IP Address (Host o dirección IP)** escriba **localhost** y en **Port (Puerto)** escriba **9001**. Seleccione **SOCKS Proxy?**, **Save (Guardar)**.

Ahora debería poder conectarse a las direcciones de host de Hyperledger Fabric enumeradas en la salida de la plantilla.