

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.

# Instale el software AWS IoT Greengrass principal con aprovisionamiento AWS IoT de flota
<a name="fleet-provisioning"></a>

Esta característica está disponible para la versión 2.4.0 y versiones posteriores del [componente núcleo de Greengrass](greengrass-nucleus-component.md).

Con el aprovisionamiento de AWS IoT flotas, puede configurarlo AWS IoT para generar y entregar de forma segura certificados de dispositivo X.509 y claves privadas a sus dispositivos cuando se conecten a ellos AWS IoT por primera vez. AWS IoT proporciona certificados de cliente firmados por la autoridad de certificación (CA) raíz de Amazon. También puede configurarlo AWS IoT para especificar grupos de cosas, tipos de cosas y permisos para los dispositivos principales de Greengrass que aprovisiona con el aprovisionamiento de flotas. Defina una *plantilla de aprovisionamiento* para definir cómo AWS IoT aprovisiona cada dispositivo. En la plantilla de aprovisionamiento se especifica el objeto, la política y los recursos de certificado que se van a crear para un dispositivo durante el aprovisionamiento. Para más información, consulte [Plantillas de aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html) en la *Guía para desarrolladores de AWS IoT Core *.

AWS IoT Greengrass proporciona un complemento de aprovisionamiento de AWS IoT flotas que puede usar para instalar el software AWS IoT Greengrass principal utilizando los AWS recursos creados por el aprovisionamiento de AWS IoT flotas. El complemento de aprovisionamiento de flotas utiliza el *aprovisionamiento por reclamación*. Los dispositivos utilizan un certificado de aprovisionamiento y una clave privada para obtener un certificado de dispositivo X.509 único y una clave privada que pueden utilizar para operaciones habituales. Puede incrustar el certificado de reclamación y la clave privada en cada dispositivo durante la fabricación, de modo que luego los clientes puedan activar los dispositivos, cuando cada dispositivo esté en funcionamiento. Puede utilizar el mismo certificado de reclamación y clave privada para varios dispositivos. Para obtener más información, consulte [Aprovisionamiento por reclamación](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#claim-based) en la *Guía para desarrolladores de AWS IoT Core *.

**nota**  
El complemento de aprovisionamiento de flotas para [Greengrass](greengrass-nucleus-component.md) nucleus no admite actualmente el almacenamiento de archivos de certificados y claves privadas en un módulo de seguridad de hardware (HSM). Para utilizar un HSM con núcleo [Greengrass](greengrass-nucleus-component.md)[, instale AWS IoT Greengrass el software Core con](manual-installation.md) aprovisionamiento manual. [Greengrass nucleus lite](greengrass-nucleus-lite-component.md) v2.5.0 y versiones posteriores admiten TPM con aprovisionamiento de flota de forma nativa.

Para instalar el software AWS IoT Greengrass Core con el aprovisionamiento de AWS IoT flota, debe configurar los recursos Cuenta de AWS que AWS IoT utiliza para aprovisionar los dispositivos principales de Greengrass. Estos recursos incluyen una plantilla de aprovisionamiento, certificados de reclamación y un [rol de IAM para el intercambio de token](device-service-role.md). Después de crear estos recursos, puede reutilizarlos para aprovisionar varios dispositivos principales de una flota. Para obtener más información, consulte [Configurar el aprovisionamiento de AWS IoT flota para los dispositivos principales de Greengrass](fleet-provisioning-setup.md).

**importante**  <a name="install-greengrass-core-requirements-note"></a>
Antes de descargar el software AWS IoT Greengrass Core, compruebe que su dispositivo principal cumpla con los [requisitos](greengrass-nucleus-component.md#greengrass-v2-requirements) para instalar y ejecutar el software AWS IoT Greengrass Core v2.0.

**Topics**
+ [Requisitos previos](#fleet-provisioning-prerequisites)
+ [Recupere los puntos finales AWS IoT](#retrieve-iot-endpoints)
+ [Descarga de certificados al dispositivo](#download-claim-certificates)
+ [Configuración del entorno del dispositivo](#set-up-device-environment)
+ [Descargue el software AWS IoT Greengrass principal](#download-greengrass-core-v2)
+ [Descargue el complemento de aprovisionamiento AWS IoT de flotas](#download-fleet-provisioning-plugin)
+ [Instale el software AWS IoT Greengrass principal](#run-greengrass-core-v2-installer-fleet)
+ [Configurar el aprovisionamiento de AWS IoT flota para los dispositivos principales de Greengrass](fleet-provisioning-setup.md)
+ [Configurar el complemento de aprovisionamiento de AWS IoT flotas](fleet-provisioning-configuration.md)
+ [Registro de cambios del complemento de aprovisionamiento de flotas AWS IoT](fleet-provisioning-changelog.md)

## Requisitos previos
<a name="fleet-provisioning-prerequisites"></a>

Para instalar el software AWS IoT Greengrass Core con el aprovisionamiento de AWS IoT flota, primero debe [configurar el aprovisionamiento de AWS IoT flota para los dispositivos principales de Greengrass](fleet-provisioning-setup.md). Tras completar estos pasos una vez, puede utilizar el aprovisionamiento de flotas para instalar el software AWS IoT Greengrass Core en cualquier número de dispositivos.

## Recupere los puntos finales AWS IoT
<a name="retrieve-iot-endpoints"></a>

Obtenga los AWS IoT puntos finales que desee y guárdelos para usarlos más adelante. Cuenta de AWS El dispositivo usa estos puntos de conexión para conectarse a AWS IoT. Haga lo siguiente:

1. Obtenga el punto final AWS IoT de datos para su. Cuenta de AWS

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

   ```
   {
     "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Obtenga el punto final de AWS IoT credenciales para su Cuenta de AWS.

   ```
   aws iot describe-endpoint --endpoint-type iot:CredentialProvider
   ```

   Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

   ```
   {
     "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   }
   ```

## Descarga de certificados al dispositivo
<a name="download-claim-certificates"></a>

El dispositivo utiliza un certificado de reclamación y una clave privada para autenticar su solicitud de aprovisionamiento de AWS recursos y adquirir un certificado de dispositivo X.509. Puede incrustar el certificado de reclamación y la clave privada en el dispositivo durante la fabricación o copiar el certificado y la clave en el dispositivo durante la instalación. En esta sección, debe copiar el certificado de reclamación y la clave privada en el dispositivo. También descargue el certificado de la autoridad del certificado raíz (CA) de Amazon en el dispositivo.

**importante**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Las claves privadas de la notificación de aprovisionamiento deben estar protegidas en todo momento, también en el dispositivo principal de Greengrass. Te recomendamos que utilices CloudWatch las estadísticas y los registros de Amazon para detectar indicios de uso indebido, como el uso no autorizado del certificado de reclamación para aprovisionar dispositivos. Si detecta un uso incorrecto, deshabilite el certificado de notificación de aprovisionamiento para que no se pueda utilizar para el aprovisionamiento de dispositivos. Para obtener más información, consulte [Monitorear AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) en la *Guía para desarrolladores de AWS IoT Core *.  
Para ayudarte a gestionar mejor el número de dispositivos y los dispositivos que se registran automáticamente en el tuyo Cuenta de AWS, puedes especificar un enlace previo al aprovisionamiento al crear una plantilla de aprovisionamiento de flotas. Un enlace de preaprovisionamiento es una AWS Lambda función que valida los parámetros de plantilla que proporcionan los dispositivos durante el registro. Por ejemplo, puede crear un enlace previo al aprovisionamiento que compruebe un ID de un dispositivo con una base de datos para comprobar que el dispositivo tiene permiso de aprovisionamiento. Para obtener más información, consulte los [enlaces previos al aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) en la *Guía para desarrolladores de AWS IoT Core *.

**Cómo descargar los certificados de reclamación al dispositivo**

1. Copie el certificado de reclamación y la clave privada en el dispositivo. Si SSH y SCP están habilitados en la computadora de desarrollo y en el dispositivo, puede utilizar el comando `scp` de la computadora de desarrollo para transferir el certificado de reclamación y la clave privada. El siguiente comando de ejemplo transfiere estos archivos a una carpeta denominada `claim-certs` en la computadora de desarrollo al dispositivo. *device-ip-address*Sustitúyala por la dirección IP de tu dispositivo.

   ```
   scp -r claim-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Cree la carpeta raíz de Greengrass en el dispositivo. Más adelante instalarás el software AWS IoT Greengrass principal en esta carpeta.
**nota**  
Windows tiene una limitación de longitud de ruta de 260 caracteres. Si usa Windows, use una carpeta raíz como `C:\greengrass\v2` o `D:\greengrass\v2` para mantener las rutas de los componentes de Greengrass por debajo del límite de 260 caracteres.

------
#### [ Linux or Unix ]
   + Reemplace `/greengrass/v2` por la carpeta que desee utilizar.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Reemplace *C:\$1greengrass\$1v2* por la carpeta que desee utilizar.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Reemplace *C:\$1greengrass\$1v2* por la carpeta que desee utilizar.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Solo para Linux) Establezca los permisos de la carpeta principal de la carpeta raíz de Greengrass.
   + */greengrass*Sustitúyalo por el elemento principal de la carpeta raíz.

   ```
   sudo chmod 755 /greengrass
   ```

1. Mueva los certificados de reclamación a la carpeta raíz de Greengrass.
   + Sustituya `/greengrass/v2` o *C:\$1greengrass\$1v2* por la carpeta raíz de Greengrass.

------
#### [ Linux or Unix ]

   ```
   sudo mv ~/claim-certs /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   move %USERPROFILE%\claim-certs C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   mv -Path ~\claim-certs -Destination C:\greengrass\v2
   ```

------

1. <a name="installation-download-root-ca-certificate"></a>Descarga el certificado de la autoridad de certificación raíz (CA) de Amazon. AWS IoT Los certificados están asociados al certificado de CA raíz de Amazon de forma predeterminada.

------
#### [ Linux or Unix ]

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

## Configuración del entorno del dispositivo
<a name="set-up-device-environment"></a>

Siga los pasos de esta sección para configurar un dispositivo Linux o Windows para usarlo como su dispositivo principal de AWS IoT Greengrass .

### Configuración de un dispositivo Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Para configurar un dispositivo Linux para AWS IoT Greengrass V2**

1. Instale el motor de ejecución de Java, que el software AWS IoT Greengrass principal necesita para ejecutarse. Le recomendamos que utilice las versiones de compatibilidad a largo plazo de [Amazon Corretto](https://aws.amazon.com/corretto/) u [OpenJDK](https://openjdk.java.net/). Se requiere la versión 8 o posterior. Los siguientes comandos muestran cómo instalar OpenJDK en su dispositivo.
   + Para distribuciones basadas en Debian o en Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Para distribuciones basadas en Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + En Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + En Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Cuando se complete la instalación, ejecute el siguiente comando para comprobar que Java se ejecuta en su dispositivo Linux.

   ```
   java -version
   ```

   El comando imprime la versión de Java que se ejecuta en el dispositivo. Por ejemplo, en una distribución basada en Debian, el resultado podría ser similar al siguiente ejemplo.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opcional) Cree el usuario y el grupo predeterminado del sistema que ejecutan los componentes del dispositivo. También puede optar por permitir que el instalador del software AWS IoT Greengrass principal cree este usuario y grupo durante la instalación con el argumento del `--component-default-user` instalador. Para obtener más información, consulte [Argumentos del instalador](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Compruebe que el usuario que ejecuta el software AWS IoT Greengrass principal (normalmente`root`) tiene permiso para ejecutar `sudo` con cualquier usuario y grupo.

   1. Ejecute el siguiente comando para abrir el archivo `/etc/sudoers`.

      ```
      sudo visudo
      ```

   1. Compruebe que el permiso del usuario se parezca al siguiente ejemplo.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. (Opcional) Para [ejecutar funciones de Lambda en contenedores](run-lambda-functions.md), debe habilitar la versión 1 de [cgroups](https://en.wikipedia.org/wiki/Cgroups), y habilitar y montar los cgroups de *memoria* y de *dispositivos*. Si no tiene previsto ejecutar funciones de Lambda en contenedores, puede omitir este paso.

   Para habilitar estas opciones de cgroups, arranque el dispositivo con los siguientes parámetros del kernel de Linux.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Para obtener más información acerca de cómo ver y configurar los parámetros del kernel de su dispositivo, consulte la documentación del sistema operativo y del gestor de arranque. Siga las instrucciones para configurar permanentemente los parámetros del kernel.

1. Instale todas las demás dependencias necesarias en su dispositivo tal y como se indica en la lista de requisitos de [Requisitos de los dispositivos](greengrass-nucleus-component.md#greengrass-v2-requirements).

### Configuración de un dispositivo de Windows
<a name="set-up-windows-device-environment"></a>

**nota**  
Esta característica está disponible para la versión 2.5.0 y versiones posteriores del [componente núcleo de Greengrass](greengrass-nucleus-component.md).<a name="set-up-windows-device-environment-procedure"></a>

**Para configurar un dispositivo Windows para AWS IoT Greengrass V2**

1. Instale el motor de ejecución de Java, que el software AWS IoT Greengrass principal necesita para ejecutarse. Le recomendamos que utilice las versiones de compatibilidad a largo plazo de [Amazon Corretto](https://aws.amazon.com/corretto/) u [OpenJDK](https://openjdk.java.net/). Se requiere la versión 8 o posterior.

1. Compruebe si Java está disponible en la variable del sistema [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) y agréguelo si no lo está. La LocalSystem cuenta ejecuta el software AWS IoT Greengrass principal, por lo que debe agregar Java a la variable de sistema PATH en lugar de a la variable de usuario PATH de su usuario. Haga lo siguiente:

   1. Pulse la tecla Windows para abrir el menú de inicio.

   1. Escriba **environment variables** para buscar las opciones del sistema en el menú de inicio.

   1. En los resultados de la búsqueda del menú de inicio, elija **Editar las variables de entorno del sistema** para abrir la ventana de **Propiedades del sistema**.

   1. Elija **Variables de entorno...** para abrir la ventana **Variables de entorno**.

   1. En **Variables del sistema**, elija **Ruta** y, luego, **Editar**. En la ventana **Editar variables de entorno**, puede ver cada ruta en una línea independiente.

   1. Compruebe si la ruta a la carpeta de la instalación de Java `bin` está presente. La ruta puede tener un aspecto similar al siguiente ejemplo.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Si la carpeta de la instalación de Java `bin` no aparece en **Ruta**, elija **Nueva** para agregarla y, a continuación, pulse **Aceptar**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Abra el símbolo del sistema de Windows (`cmd.exe`) como administrador.

1. <a name="set-up-windows-device-environment-create"></a>Cree el usuario predeterminado en la LocalSystem cuenta del dispositivo Windows. *password*Sustitúyalo por una contraseña segura.

   ```
   net user /add ggc_user password
   ```
**sugerencia**  <a name="windows-password-expiration-tip"></a>
Según su configuración de Windows, es posible que la contraseña del usuario caduque en una fecha futura. Para garantizar que sus aplicaciones de Greengrass sigan funcionando, controle cuándo caduca la contraseña y actualícela antes de que caduque. También puede configurar la contraseña del usuario para que nunca caduque.  
Para comprobar cuándo caducan un usuario y su contraseña, ejecute el siguiente comando.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Para configurar la contraseña de un usuario para que no caduque nunca, ejecute el siguiente comando.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Si utilizas Windows 10 o una versión posterior, donde el [`wmic`comando está en desuso](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), ejecuta el siguiente PowerShell comando.  

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Descargue e instale la [PsExecutilidad](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) de Microsoft en el dispositivo. 

1. <a name="set-up-windows-device-credentials"></a>Utilice la PsExec utilidad para almacenar el nombre de usuario y la contraseña del usuario predeterminado en la instancia de Credential Manager de la LocalSystem cuenta. *password*Sustitúyala por la contraseña de usuario que configuraste anteriormente.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Si **PsExec License Agreement** se abre, elija **Accept** para aceptar la licencia y ejecute el comando.
**nota**  
En los dispositivos Windows, la LocalSystem cuenta ejecuta el núcleo de Greengrass y debe usar la PsExec utilidad para almacenar la información de usuario predeterminada en la LocalSystem cuenta. El uso de la aplicación Credential Manager almacena esta información en la cuenta de Windows del usuario que ha iniciado sesión actualmente, en lugar de en la LocalSystem cuenta.

## Descargue el software AWS IoT Greengrass principal
<a name="download-greengrass-core-v2"></a>

Puede descargar la última versión del software AWS IoT Greengrass Core desde la siguiente ubicación:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**nota**  
Puede descargar una versión específica del software AWS IoT Greengrass Core desde la siguiente ubicación. *version*Sustitúyala por la versión que se va a descargar.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Para descargar el software AWS IoT Greengrass principal**

1. <a name="installation-download-ggc-software-step"></a>En su dispositivo principal, descargue el software AWS IoT Greengrass Core en un archivo denominado`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Al descargar este software, acepta el [acuerdo de licencia del software de Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opcional) Verificación de la firma del software del núcleo de Greengrass
**nota**  
Esta característica está disponible en la versión 2.9.5 y versiones posteriores del núcleo de Greengrass.

   1. Use el siguiente comando para verificar la firma del artefacto del núcleo de Greengrass:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      El nombre del archivo puede tener un aspecto diferente según la versión de JDK que instale. Reemplace *`jdk17.0.6_10`* por la versión de JDK que instaló.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      El nombre del archivo puede tener un aspecto diferente según la versión de JDK que instale. Reemplace *`jdk17.0.6_10`* por la versión de JDK que instaló.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. La invocación `jarsigner` produce un resultado que indica los resultados de la verificación.

      1. Si el archivo zip del núcleo de Greengrass está firmado, el resultado contiene la siguiente declaración:

         ```
         jar verified.
         ```

      1. Si el archivo zip del núcleo de Greengrass no está firmado, el resultado contiene la siguiente declaración:

         ```
         jar is unsigned.
         ```

   1. Si ha proporcionado la opción `-certs` Jarsigner junto con las opciones `-verify` y `-verbose`, el resultado también incluye información detallada del certificado de firmante.

1. <a name="installation-unzip-ggc-software-step"></a>Descomprime el software AWS IoT Greengrass Core en una carpeta de tu dispositivo. *GreengrassInstaller*Sustitúyalo por la carpeta que desee usar.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opcional) Ejecute el siguiente comando para ver la versión del software AWS IoT Greengrass principal.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**importante**  <a name="installer-folder-2.4.0-warning"></a>
Si instala una versión del núcleo de Greengrass anterior a la v2.4.0, no elimine esta carpeta después de instalar el software Core. AWS IoT Greengrass El software AWS IoT Greengrass Core utiliza los archivos de esta carpeta para ejecutarse.  
Si descargó la última versión del software, instale la versión 2.4.0 o posterior y podrá eliminar esta carpeta después de instalar el software AWS IoT Greengrass principal.

## Descargue el complemento de aprovisionamiento AWS IoT de flotas
<a name="download-fleet-provisioning-plugin"></a>

Puedes descargar la última versión del complemento de aprovisionamiento de AWS IoT flotas desde la siguiente ubicación:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim](https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar)-latest.jar

**nota**  
Puede descargar una versión específica del complemento de aprovisionamiento de AWS IoT flotas desde la siguiente ubicación. *version*Sustitúyala por la versión que se va a descargar. Para obtener más información sobre cada versión del complemento de aprovisionamiento de flota, consulte [Registro de cambios del complemento de aprovisionamiento de flotas AWS IoT](fleet-provisioning-changelog.md).  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-version.jar
```

El complemento de aprovisionamiento de flota es de código abierto. Para ver su código fuente, consulta el [complemento de aprovisionamiento de AWS IoT flotas](https://github.com/aws-greengrass/aws-greengrass-fleet-provisioning-by-claim) en GitHub.

**Para descargar el complemento de aprovisionamiento de AWS IoT flotas**
+ En su dispositivo, descargue el complemento de aprovisionamiento de AWS IoT flotas en un archivo denominado. `aws.greengrass.FleetProvisioningByClaim.jar` *GreengrassInstaller*Sustitúyalo por la carpeta que desee usar.

------
#### [ Linux or Unix ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ PowerShell ]

  ```
  iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar -OutFile GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------

  <a name="core-software-license"></a>Al descargar este software, acepta el [acuerdo de licencia del software de Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

## Instale el software AWS IoT Greengrass principal
<a name="run-greengrass-core-v2-installer-fleet"></a>

Ejecute el instalador con argumentos que especifiquen las siguientes acciones:
+ Instálelo desde un archivo de configuración parcial que especifique el uso del complemento de aprovisionamiento de flotas para aprovisionar AWS recursos. El software AWS IoT Greengrass Core utiliza un archivo de configuración que especifica la configuración de todos los componentes de Greengrass del dispositivo. El instalador crea un archivo de configuración completo a partir del archivo de configuración parcial que usted proporciona y de los recursos de AWS que crea el complemento de aprovisionamiento de flota.
+ <a name="install-argument-component-default-user"></a>Especifique si desea usar el usuario del sistema `ggc_user` para ejecutar los componentes de software en el dispositivo principal. En los dispositivos Linux, este comando también especifica el uso del grupo del sistema `ggc_group` y el instalador crea el usuario y el grupo del sistema por usted.
+ <a name="install-argument-system-service"></a>Configure el software AWS IoT Greengrass Core como un servicio del sistema que se ejecute durante el arranque. En los dispositivos Linux, esto requiere el sistema de inicio [Systemd](https://en.wikipedia.org/wiki/Systemd).
**importante**  <a name="windows-system-service-requirement-important-note"></a>
En los dispositivos principales de Windows, debe configurar el software AWS IoT Greengrass principal como un servicio del sistema.

Para obtener más información acerca de los argumentos que puede especificar, consulte [Argumentos del instalador](configure-installer.md).

**nota**  
<a name="jvm-tuning-note"></a>Si utilizas un AWS IoT Greengrass dispositivo con memoria limitada, puedes controlar la cantidad de memoria que utiliza el software AWS IoT Greengrass Core. Para controlar la asignación de memoria, puede configurar las opciones de tamaño de montón de la JVM en el parámetro de configuración `jvmOptions` del componente núcleo. Para obtener más información, consulte [Control de la asignación de memoria con las opciones de JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Para instalar el software AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Compruebe la versión del software AWS IoT Greengrass principal.
   + *GreengrassInstaller*Sustitúyala por la ruta a la carpeta que contiene el software.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Use un editor de texto para crear un archivo de configuración llamado `config.yaml` para proporcionárselo al instalador.

   <a name="nano-command-intro"></a>Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Copie el siguiente contenido YAML en el archivo. Este archivo de configuración parcial especifica los parámetros del complemento de aprovisionamiento de flota. Para obtener más información acerca de las opciones que puede especificar, consulte [Configurar el complemento de aprovisionamiento de AWS IoT flotas](fleet-provisioning-configuration.md).

------
#### [ Linux or Unix ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.17.0"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt"
         claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key"
         rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------
#### [ Windows ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.17.0"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "C:\\greengrass\\v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt"
         claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key"
         rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------

   A continuación, proceda del modo siguiente:
   + *2.17.0*Sustitúyala por la versión del software AWS IoT Greengrass principal.
   + Sustituya cada instancia de `/greengrass/v2` o *C:\$1greengrass\$1v2* por la carpeta raíz de Greengrass.
**nota**  
En los dispositivos Windows, debe especificar los separadores de rutas como barras invertidas dobles (`\\`), como `C:\\greengrass\\v2`.
   + *us-west-2*Sustitúyala por la AWS región en la que creaste la plantilla de aprovisionamiento y otros recursos.
   + `iotDataEndpoint`Sustitúyalo por su punto final AWS IoT de datos.
   + Sustituya el `iotCredentialEndpoint` punto final por el de sus AWS IoT credenciales.
   + *GreengrassCoreTokenExchangeRoleAlias*Sustitúyalo por el nombre del alias de la función de intercambio de fichas.
   + *GreengrassFleetProvisioningTemplate*Sustitúyalo por el nombre de la plantilla de aprovisionamiento de flota.
   + Sustituya `claimCertificatePath` por la ruta al certificado de reclamación del dispositivo.
   + Sustituya `claimCertificatePrivateKeyPath` por la ruta a la clave privada del certificado de reclamación del dispositivo.
   + Sustituya los parámetros de la plantilla (`templateParameters`) por los valores que se usan para aprovisionar el dispositivo. Este ejemplo hace referencia a la [plantilla de ejemplo](fleet-provisioning-setup.md#example-fleet-provisioning-template) que define los parámetros `ThingName` y `ThingGroupName`.
**nota**  
En este archivo de configuración, puede personalizar otras opciones de configuración, como los puertos y el proxy de red que utilice, tal como se muestra en el siguiente ejemplo. Para obtener más información, consulte la [Configuración del núcleo de Greengrass](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration).  

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.17.0"
       configuration:
         mqtt:
           port: 443
         greengrassDataPlanePort: 443
         networkProxy:
           noProxyAddresses: "http://192.168.0.1,www.example.com"
           proxy:
             url: "http://my-proxy-server:1100"
             username: "Mary_Major"
             password: "pass@word1357"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt"
         claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key"
         rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
         mqttPort: 443
         proxyUrl: "http://my-proxy-server:1100"
         proxyUserName: "Mary_Major"
         proxyPassword: "pass@word1357"
   ```

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.17.0"
       configuration:
         mqtt:
           port: 443
         greengrassDataPlanePort: 443
         networkProxy:
           noProxyAddresses: "http://192.168.0.1,www.example.com"
           proxy:
             url: "http://my-proxy-server:1100"
             username: "Mary_Major"
             password: "pass@word1357"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "C:\\greengrass\\v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt"
         claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key"
         rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
         mqttPort: 443
         proxyUrl: "http://my-proxy-server:1100"
         proxyUserName: "Mary_Major"
         proxyPassword: "pass@word1357"
   ```
Para utilizar un proxy HTTPS, debe utilizar la versión 1.1.0 o posterior del complemento de aprovisionamiento de flotas. Además, debe especificar la `rootCaPath` de `system`, como se muestra en el siguiente ejemplo.  

   ```
   ---
   system:
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
   services:
     ...
   ```

   ```
   ---
   system:
     rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
   services:
     ...
   ```

1. Ejecute el instalador. Especifique `--trusted-plugin` si desea proporcionar el complemento de aprovisionamiento de flota y especifique `--init-config` si desea proporcionar el archivo de configuración.
   + Reemplace `/greengrass/v2` por la carpeta raíz de Greengrass.
   + Sustituya cada instancia de por *GreengrassInstaller* la carpeta en la que desempaquetó el instalador.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**importante**  <a name="windows-system-service-installer-argument-important-note"></a>
En los dispositivos principales de Windows, debe especificar si `--setup-system-service true` desea configurar el software AWS IoT Greengrass principal como un servicio del sistema.

   <a name="installer-setup-system-service-output-message"></a>Si especifica `--setup-system-service true`, el instalador imprime `Successfully set up Nucleus as a system service` si configuró y ejecutó el software como un servicio del sistema. De lo contrario, el instalador no mostrará ningún mensaje si instala el software correctamente.
**nota**  <a name="installer-deploy-dev-tools-without-provision"></a>
No puede usar el argumento `deploy-dev-tools` para implementar herramientas de desarrollo locales cuando ejecuta el instalador sin el argumento `--provision true`. Para obtener información sobre cómo implementar la CLI de Greengrass directamente en su dispositivo, consulte [Interfaz de la línea de comandos de Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifique la instalación mediante la consulta de los archivos de la carpeta raíz.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Si la instalación se realizó correctamente, la carpeta raíz contiene varias carpetas, como `config`, `packages` y `logs`.

<a name="install-greengrass-core-run-software"></a>Si instaló el software AWS IoT Greengrass Core como un servicio del sistema, el instalador ejecutará el software automáticamente. De no ser así, debe ejecutar el software manualmente. Para obtener más información, consulte [Ejecute el software AWS IoT Greengrass principal](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Para obtener más información sobre cómo configurar y utilizar el software AWS IoT Greengrass, consulte lo siguiente:<a name="install-greengrass-core-next-steps-links"></a>
+ [Configurar el software AWS IoT Greengrass principal](configure-greengrass-core-v2.md)
+ [Desarrolle AWS IoT Greengrass componentes](develop-greengrass-components.md)
+ [Implemente AWS IoT Greengrass componentes en los dispositivos](manage-deployments.md)
+ [Interfaz de la línea de comandos de Greengrass](gg-cli.md)

# Configurar el aprovisionamiento de AWS IoT flota para los dispositivos principales de Greengrass
<a name="fleet-provisioning-setup"></a>

Para [instalar el software AWS IoT Greengrass Core con el aprovisionamiento de flotas](fleet-provisioning.md), primero debe configurar los siguientes recursos en su. Cuenta de AWS Estos recursos permiten que los dispositivos se registren AWS IoT y funcionen como dispositivos principales de Greengrass. Siga los pasos de esta sección una vez para crear y configurar estos recursos en su Cuenta de AWS.
+ Un rol de IAM de intercambio de token, que los dispositivos principales utilizan para autorizar las llamadas a los servicios de AWS .
+ Un alias de AWS IoT rol que apunta al rol de intercambio de fichas.
+ (Opcional) Una AWS IoT política que los dispositivos principales utilizan para autorizar las llamadas a los AWS IoT Greengrass servicios AWS IoT y. Esta AWS IoT política debe permitir el `iot:AssumeRoleWithCertificate` permiso para el alias de la AWS IoT función que apunta a la función de intercambio de fichas.

  Puede usar una AWS IoT política única para todos los dispositivos principales de su flota, o puede configurar la plantilla de aprovisionamiento de la flota para crear una AWS IoT política para cada dispositivo principal.
+ Una plantilla de aprovisionamiento de AWS IoT flota. Esta plantilla debe especificar lo siguiente:<a name="installation-fleet-provisioning-template-requirements"></a>
  + Cualquier AWS IoT cosa, un recurso. Puede especificar una lista de grupos de objetos existentes para implementar componentes en cada dispositivo cuando esté en línea.
  + Un recurso AWS IoT político. Este recurso puede definir al menos una de las siguientes propiedades:
    + El nombre de una AWS IoT política existente. Si elige esta opción, los dispositivos principales que cree a partir de esta plantilla utilizarán la misma AWS IoT política y podrá gestionar sus permisos como una flota.
    + Un documento AWS IoT de política. Si elige esta opción, cada dispositivo principal que cree a partir de esta plantilla utilizará una AWS IoT política única y podrá administrar los permisos de cada dispositivo principal individual.
  + Un recurso AWS IoT de certificados. Este recurso de certificado debe usar el parámetro `AWS::IoT::Certificate::Id` para adjuntar el certificado al dispositivo principal. Para obtener más información, consulte el [Just-in-time aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html) en la *Guía para AWS IoT desarrolladores*.
+ Un certificado de notificación de AWS IoT aprovisionamiento y una clave privada para la plantilla de aprovisionamiento de flotas. Puede incrustar este certificado y esta clave privada en los dispositivos durante la fabricación, de modo que los dispositivos puedan registrarse y aprovisionarse por sí mismos cuando se conecten a Internet.
**importante**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Las claves privadas de la notificación de aprovisionamiento deben estar protegidas en todo momento, también en el dispositivo principal de Greengrass. Te recomendamos que utilices CloudWatch las estadísticas y los registros de Amazon para detectar indicios de uso indebido, como el uso no autorizado del certificado de reclamación para aprovisionar dispositivos. Si detecta un uso incorrecto, deshabilite el certificado de notificación de aprovisionamiento para que no se pueda utilizar para el aprovisionamiento de dispositivos. Para obtener más información, consulte [Monitorear AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) en la *Guía para desarrolladores de AWS IoT Core *.  
Para ayudarte a gestionar mejor el número de dispositivos y los dispositivos que se registran automáticamente en el tuyo Cuenta de AWS, puedes especificar un enlace previo al aprovisionamiento al crear una plantilla de aprovisionamiento de flotas. Un enlace de preaprovisionamiento es una AWS Lambda función que valida los parámetros de plantilla que proporcionan los dispositivos durante el registro. Por ejemplo, puede crear un enlace previo al aprovisionamiento que compruebe un ID de un dispositivo con una base de datos para comprobar que el dispositivo tiene permiso de aprovisionamiento. Para obtener más información, consulte los [enlaces previos al aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) en la *Guía para desarrolladores de AWS IoT Core *.
+  AWS IoT Política que se adjunta al certificado de notificación de aprovisionamiento para permitir que los dispositivos se registren y utilicen la plantilla de aprovisionamiento de flota.

**Topics**
+ [Creación de un rol de intercambio de token](#create-token-exchange-role)
+ [Cree una AWS IoT política](#create-iot-policy)
+ [Creación de una plantilla de aprovisionamiento de flota](#create-provisioning-template)
+ [Creación de un certificado de notificación de aprovisionamiento y una clave privada](#create-claim-certificates)

## Creación de un rol de intercambio de token
<a name="create-token-exchange-role"></a>

<a name="installation-create-token-exchange-role-intro"></a>Los dispositivos principales de Greengrass utilizan una función de servicio de IAM, denominada función de *intercambio de fichas*, para autorizar las llamadas a los servicios. AWS El dispositivo utiliza el proveedor de AWS IoT credenciales para obtener AWS credenciales temporales para esta función, lo que permite al dispositivo interactuar con Amazon Logs AWS IoT, enviar registros a Amazon CloudWatch Logs y descargar artefactos de componentes personalizados de Amazon S3. Para obtener más información, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

<a name="installation-create-token-exchange-role-alias-intro"></a>Se utiliza un *alias de AWS IoT rol* para configurar el rol de intercambio de fichas para los dispositivos principales de Greengrass. Los alias de rol le permiten cambiar el rol de intercambio de token de un dispositivo, pero mantener la configuración del dispositivo igual. Para obtener más información, consulte [Autorización de llamadas a los servicios de AWS](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) en la *Guía para desarrolladores de AWS IoT Core *.

En esta sección, creará un rol de IAM de intercambio de tokens y un alias de AWS IoT rol que apunte al rol. Si ya ha configurado un dispositivo principal de Greengrass, puede usar su rol de intercambio de token y su alias de rol en lugar de crear otros nuevos.

**Creación de un rol de IAM de intercambio de token**

1. <a name="create-token-exchange-role-create-iam-role"></a>Creación de un rol de IAM que su dispositivo puede usar como rol de intercambio de token. Haga lo siguiente:

   1. Creación de un archivo que contenga el documento de política de confianza que requiere el rol de intercambio de token.

      <a name="nano-command-intro"></a>Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

      ```
      nano device-role-trust-policy.json
      ```

      Copie el siguiente JSON en el archivo.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "credentials.iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. Creación del rol de intercambio de token con el documento de política de confianza.
      + *GreengrassV2TokenExchangeRole*Sustitúyalo por el nombre del rol de IAM que se va a crear.

      ```
      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json
      ```

      Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

      ```
      {
        "Role": {
          "Path": "/",
          "RoleName": "GreengrassV2TokenExchangeRole",
          "RoleId": "AROAZ2YMUHYHK5OKM77FB",
          "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
          "CreateDate": "2021-02-06T00:13:29+00:00",
          "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Service": "credentials.iot.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
              }
            ]
          }
        }
      ```

   1. Creación de un archivo que contenga el documento de política de acceso que requiere el rol de intercambio de token.

      <a name="nano-command-intro"></a>Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

      ```
      nano device-role-access-policy.json
      ```

      Copie el siguiente JSON en el archivo.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents",
              "logs:DescribeLogStreams",
              "s3:GetBucketLocation"
            ],
            "Resource": "*"
          }
        ]
      }
      ```
**nota**  
Esta política de acceso no permite el acceso a los artefactos de componentes en los buckets de S3. Para implementar componentes personalizados que definan artefactos en Amazon S3, debe agregar permisos al rol para permitir que su dispositivo principal recupere artefactos de componentes. Para obtener más información, consulte [Cómo permitir el acceso a los buckets de S3 para los artefactos del componente](device-service-role.md#device-service-role-access-s3-bucket).  
Si aún no tiene un bucket de S3 para los artefactos de los componentes, puede agregar estos permisos más adelante, después de crear un bucket.

   1. Creación de la política de IAM a partir del documento de política.
      + *GreengrassV2TokenExchangeRoleAccess*Sustitúyalo por el nombre de la política de IAM que se va a crear.

      ```
      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json
      ```

      Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

      ```
      {
        "Policy": {
          "PolicyName": "GreengrassV2TokenExchangeRoleAccess",
          "PolicyId": "ANPAZ2YMUHYHACI7C5Z66",
          "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
          "Path": "/",
          "DefaultVersionId": "v1",
          "AttachmentCount": 0,
          "PermissionsBoundaryUsageCount": 0,
          "IsAttachable": true,
          "CreateDate": "2021-02-06T00:37:17+00:00",
          "UpdateDate": "2021-02-06T00:37:17+00:00"
        }
      }
      ```

   1. Adjunte la política de IAM al rol de intercambio de token.
      + Reemplace *GreengrassV2TokenExchangeRole* por el nombre del rol de IAM.
      + Reemplace el ARN de la política por el ARN de la política de IAM que creó en el paso anterior.

      ```
      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
      ```

      El comando no tiene ningún resultado si la solicitud se realiza correctamente.

1. <a name="create-token-exchange-role-create-iot-role-alias"></a>Cree un alias de AWS IoT rol que apunte al rol de intercambio de fichas.
   + *GreengrassCoreTokenExchangeRoleAlias*Sustitúyalo por el nombre del alias del rol que se va a crear.
   + Reemplace el ARN del rol por el ARN del rol de IAM que creó en el paso anterior.

   ```
   aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
   ```

   Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

   ```
   {
     "roleAlias": "GreengrassCoreTokenExchangeRoleAlias",
     "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
   }
   ```
**nota**  
Para crear un alias de rol, debe tener el permiso para transferir el rol de IAM de intercambio de token a AWS IoT. Si recibe un mensaje de error al intentar crear un alias de rol, compruebe que el AWS usuario tiene este permiso. Para obtener más información, consulte [Conceder permisos a un usuario para transferir un rol a un AWS servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) en la *Guía del AWS Identity and Access Management usuario*.

## Cree una AWS IoT política
<a name="create-iot-policy"></a>

Después de registrar un dispositivo como una AWS IoT cosa, ese dispositivo puede usar un certificado digital para autenticarse AWS. Este certificado incluye una o más AWS IoT políticas que definen los permisos que un dispositivo puede usar con el certificado. Estas políticas permiten que el dispositivo se comunique con AWS IoT y AWS IoT Greengrass.

Con el aprovisionamiento de AWS IoT flotas, los dispositivos se conectan AWS IoT para crear y descargar un certificado de dispositivo. En la plantilla de aprovisionamiento de flotas que cree en la siguiente sección, puede especificar si desea AWS IoT adjuntar la misma AWS IoT política a todos los certificados de los dispositivos o crear una nueva política para cada dispositivo.

En esta sección, creará una AWS IoT política que se AWS IoT adjunte a los certificados de todos los dispositivos. Con este enfoque, puede administrar los permisos de todos los dispositivos como una flota. Si prefieres crear una AWS IoT política nueva para cada dispositivo, puedes saltarte esta sección y consultar la política que contiene cuando definas la plantilla de tu flota.

**Para crear una AWS IoT política**
+ Cree una AWS IoT política que defina los AWS IoT permisos para su flota de dispositivos principales de Greengrass. La siguiente política permite el acceso a todos los temas de MQTT y a las operaciones de Greengrass, de modo que su dispositivo funcione con aplicaciones personalizadas y con cambios futuros que requieran nuevas operaciones de Greengrass. Esta política también concede el permiso `iot:AssumeRoleWithCertificate`, que permite a los dispositivos utilizar el rol de intercambio de token que creó en la sección anterior. Puede restringir esta política en función del caso de uso. Para obtener más información, consulte [AWS IoT Política mínima para los dispositivos AWS IoT Greengrass V2 principales](device-auth.md#greengrass-core-minimal-iot-policy).

  Haga lo siguiente:

  1. Cree un archivo que contenga el documento AWS IoT de política que requieren los dispositivos principales de Greengrass.

     <a name="nano-command-intro"></a>Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

     ```
     nano greengrass-v2-iot-policy.json
     ```

     Copie el siguiente JSON en el archivo.
     + Sustituya el `iot:AssumeRoleWithCertificate` recurso por el ARN del alias de AWS IoT rol que creó en la sección anterior.

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

****  

     ```
     {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Action": [
             "iot:Publish",
             "iot:Subscribe",
             "iot:Receive",
             "iot:Connect",
             "greengrass:*"
           ],
           "Resource": [
             "*"
           ]
         },
         {
           "Effect": "Allow",
           "Action": "iot:AssumeRoleWithCertificate",
           "Resource": "arn:aws:iot:us-east-1:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
         }
       ]
     }
     ```

------

  1. Cree una AWS IoT política a partir del documento de política.
     + *GreengrassV2IoTThingPolicy*Sustitúyala por el nombre de la política que se va a crear.

     ```
     aws iot create-policy --policy-name GreengrassV2IoTThingPolicy --policy-document file://greengrass-v2-iot-policy.json
     ```

     Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

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

****  

     ```
     {
       "policyName": "GreengrassV2IoTThingPolicy",
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{
         \"Version\": \"2012-10-17\",
         \"Statement\": [
           {
             \"Effect\": \"Allow\",
             \"Action\": [
               \"iot:Publish\",
               \"iot:Subscribe\",
               \"iot:Receive\",
               \"iot:Connect\",
               \"greengrass:*\"
             ],
             \"Resource\": [
               \"*\"
             ]
           },
           {
             \"Effect\": \"Allow\",
             \"Action\": \"iot:AssumeRoleWithCertificate\",
             \"Resource\": \"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\"
           }
         ]
       }",
       "policyVersionId": "1"
     }
     ```

------

## Creación de una plantilla de aprovisionamiento de flota
<a name="create-provisioning-template"></a>

AWS IoT Las plantillas de aprovisionamiento de flotas definen cómo aprovisionar AWS IoT los artículos, las políticas y los certificados. Para aprovisionar los dispositivos principales de Greengrass con el complemento de aprovisionamiento de flotas, debe crear una plantilla en la que se especifique lo siguiente:<a name="installation-fleet-provisioning-template-requirements"></a>
+ Cualquier AWS IoT cosa, un recurso. Puede especificar una lista de grupos de objetos existentes para implementar componentes en cada dispositivo cuando esté en línea.
+ Un recurso AWS IoT político. Este recurso puede definir al menos una de las siguientes propiedades:
  + El nombre de una AWS IoT política existente. Si elige esta opción, los dispositivos principales que cree a partir de esta plantilla utilizarán la misma AWS IoT política y podrá gestionar sus permisos como una flota.
  + Un documento AWS IoT de política. Si elige esta opción, cada dispositivo principal que cree a partir de esta plantilla utilizará una AWS IoT política única y podrá administrar los permisos de cada dispositivo principal individual.
+ Un recurso AWS IoT de certificados. Este recurso de certificado debe usar el parámetro `AWS::IoT::Certificate::Id` para adjuntar el certificado al dispositivo principal. Para obtener más información, consulte el [Just-in-time aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html) en la *Guía para AWS IoT desarrolladores*.

En la plantilla, puede especificar si desea añadirlo a una lista de grupos de cosas existentes. AWS IoT Cuando el dispositivo principal se conecta AWS IoT Greengrass por primera vez, recibe despliegues de Greengrass para cada grupo de elementos del que es miembro. Puede usar grupos de objetos para implementar el software más reciente en cada dispositivo tan pronto como esté en línea. Para obtener más información, consulte [Implemente AWS IoT Greengrass componentes en los dispositivos](manage-deployments.md).

El AWS IoT servicio requiere permisos para crear y actualizar sus AWS IoT recursos Cuenta de AWS al aprovisionar sus dispositivos. Para dar acceso al AWS IoT servicio, debe crear un rol de IAM y proporcionarlo al crear la plantilla. AWS IoT proporciona una política gestionada, el [AWSIoTThingsregistro](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration), que permite el acceso a todos los permisos que se AWS IoT puedan utilizar al aprovisionar dispositivos. Puede usar esta política administrada o crear una política personalizada que limite los permisos de la política administrada para el caso de uso.

En esta sección, se crea una función de IAM que permite AWS IoT aprovisionar recursos para los dispositivos y se crea una plantilla de aprovisionamiento de flotas que utiliza esa función de IAM.

**Cómo crear una plantilla de aprovisionamiento de flotas**

1. Cree una función de IAM que AWS IoT pueda asumir como aprovisionamiento de recursos en su empresa. Cuenta de AWS Haga lo siguiente:

   1. Cree un archivo que contenga el documento de política de confianza que le AWS IoT permita asumir el rol.

      <a name="nano-command-intro"></a>Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

      ```
      nano aws-iot-trust-policy.json
      ```

      Copie el siguiente JSON en el archivo.

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

------

   1. Cree un rol de IAM con un documento de política de confianza.
      + *GreengrassFleetProvisioningRole*Sustitúyalo por el nombre del rol de IAM que se va a crear.

      ```
      aws iam create-role --role-name GreengrassFleetProvisioningRole --assume-role-policy-document file://aws-iot-trust-policy.json
      ```

      Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "iot:Connect",
              "iot:Publish",
              "iot:Subscribe",
              "iot:Receive"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Revise la política [AWSIoTThingsde registro](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration), que permite el acceso a todos los permisos que se AWS IoT puedan utilizar al aprovisionar dispositivos. Puede usar esta política administrada o crear una política personalizada que defina los permisos restringidos para el caso de uso. Si decide crear una política personalizada, hágalo ahora.

   1. Adjunte la política de IAM al rol de aprovisionamiento de flotas.
      + Reemplace *GreengrassFleetProvisioningRole* por el nombre del rol de IAM.
      + Si creó una política personalizada en el paso anterior, sustituya el ARN de la política por el ARN de la política de IAM que vaya a utilizar.

      ```
      aws iam attach-role-policy --role-name GreengrassFleetProvisioningRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration
      ```

      El comando no tiene ningún resultado si la solicitud se realiza correctamente.

1. (Opcional) Cree un *enlace de aprovisionamiento previo*, que es una función de AWS Lambda que valida los parámetros de plantilla que los dispositivos proporcionan durante el registro. Puede usar un enlace de aprovisionamiento previo para tener más control sobre cómo y cuántos dispositivos están integrados en la Cuenta de AWS. Para obtener más información, consulte los [enlaces previos al aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) en la *Guía para desarrolladores de AWS IoT Core *.

1. Cree una plantilla de aprovisionamiento de flotas. Haga lo siguiente:

   1. Cree un archivo que contenga el documento de plantilla de aprovisionamiento.

      <a name="nano-command-intro"></a>Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

      ```
      nano greengrass-fleet-provisioning-template.json
      ```

      Escriba el documento de plantilla de aprovisionamiento. Puedes empezar con el siguiente ejemplo de plantilla de aprovisionamiento, que especifica la creación de AWS IoT algo con las siguientes propiedades:
      + El nombre del objeto es el valor que se especifica en el parámetro de la plantilla `ThingName`.
      + El objeto es una parte del grupo de objetos que se especifica en el parámetro `ThingGroupName` de plantilla. El grupo de cosas debe existir en su. Cuenta de AWS
      + El certificado de la cosa lleva `GreengrassV2IoTThingPolicy` adjunto el nombre de la AWS IoT política.

      Para más información, consulte [Plantillas de aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html) en la *Guía para desarrolladores de AWS IoT Core *.

      ```
      {
        "Parameters": {
          "ThingName": {
            "Type": "String"
          },
          "ThingGroupName": {
            "Type": "String"
          },
          "AWS::IoT::Certificate::Id": {
            "Type": "String"
          }
        },
        "Resources": {
          "MyThing": {
            "OverrideSettings": {
              "AttributePayload": "REPLACE",
              "ThingGroups": "REPLACE",
              "ThingTypeName": "REPLACE"
            },
            "Properties": {
              "AttributePayload": {},
              "ThingGroups": [
                {
                  "Ref": "ThingGroupName"
                }
              ],
              "ThingName": {
                "Ref": "ThingName"
              }
            },
            "Type": "AWS::IoT::Thing"
          },
          "MyPolicy": {
            "Properties": {
              "PolicyName": "GreengrassV2IoTThingPolicy"
            },
            "Type": "AWS::IoT::Policy"
          },
          "MyCertificate": {
            "Properties": {
              "CertificateId": {
                "Ref": "AWS::IoT::Certificate::Id"
              },
              "Status": "Active"
            },
            "Type": "AWS::IoT::Certificate"
          }
        }
      }
      ```
**nota**  
*MyThing**MyPolicy*, y *MyCertificate* son nombres arbitrarios que identifican cada especificación de recurso de la plantilla de aprovisionamiento de flota. AWS IoT no utiliza estos nombres en los recursos que crea a partir de la plantilla. Puede utilizar estos nombres o sustituirlos por valores que lo ayuden a identificar cada recurso de la plantilla.

   1. Cree la plantilla de aprovisionamiento de flotas a partir del documento de plantilla de aprovisionamiento.
      + Sustituya *GreengrassFleetProvisioningTemplate* por el nombre de la plantilla a crear.
      + Sustituya la descripción de la plantilla por una descripción de la plantilla.
      + Sustituya rol del ARN de aprovisionamiento por el ARN del rol creó anteriormente.

------
#### [ Linux or Unix ]

      ```
      aws iot create-provisioning-template \
        --template-name GreengrassFleetProvisioningTemplate \
        --description "A provisioning template for Greengrass core devices." \
        --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" \
        --template-body file://greengrass-fleet-provisioning-template.json \
        --enabled
      ```

------
#### [ Windows Command Prompt (CMD) ]

      ```
      aws iot create-provisioning-template ^
        --template-name GreengrassFleetProvisioningTemplate ^
        --description "A provisioning template for Greengrass core devices." ^
        --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ^
        --template-body file://greengrass-fleet-provisioning-template.json ^
        --enabled
      ```

------
#### [ PowerShell ]

      ```
      aws iot create-provisioning-template `
        --template-name GreengrassFleetProvisioningTemplate `
        --description "A provisioning template for Greengrass core devices." `
        --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" `
        --template-body file://greengrass-fleet-provisioning-template.json `
        --enabled
      ```

------
**nota**  
Si creó un enlace de aprovisionamiento previo, especifique el ARN de la función de Lambda del enlace de aprovisionamiento previo con el argumento `--pre-provisioning-hook`.  

      ```
      --pre-provisioning-hook targetArn=arn:aws:lambda:us-west-2:123456789012:function:GreengrassPreProvisioningHook
      ```

      Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

      ```
      {
          "templateArn": "arn:aws:iot:us-west-2:123456789012:provisioningtemplate/GreengrassFleetProvisioningTemplate",
          "templateName": "GreengrassFleetProvisioningTemplate",
          "defaultVersionId": 1
      }
      ```

## Creación de un certificado de notificación de aprovisionamiento y una clave privada
<a name="create-claim-certificates"></a>

Los certificados de reclamación son certificados X.509 que permiten a los dispositivos registrarse como AWS IoT objetos y recuperar un certificado de dispositivo X.509 exclusivo para utilizarlo en las operaciones habituales. Tras crear un certificado de reclamación, debe adjuntar una AWS IoT política que permita a los dispositivos utilizarlo para crear certificados de dispositivos únicos y aprovisionarlos con una plantilla de aprovisionamiento de flota. Los dispositivos con el certificado de reclamación se pueden aprovisionar únicamente con la plantilla de aprovisionamiento que usted permita en la política AWS IoT .

En esta sección, usted crea el certificado de reclamación y lo configura para que los dispositivos lo usen con la plantilla de aprovisionamiento de flotas que creó en la sección anterior.

**importante**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Las claves privadas de la notificación de aprovisionamiento deben estar protegidas en todo momento, también en el dispositivo principal de Greengrass. Te recomendamos que utilices CloudWatch las estadísticas y los registros de Amazon para detectar indicios de uso indebido, como el uso no autorizado del certificado de reclamación para aprovisionar dispositivos. Si detecta un uso incorrecto, deshabilite el certificado de notificación de aprovisionamiento para que no se pueda utilizar para el aprovisionamiento de dispositivos. Para obtener más información, consulte [Monitorear AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) en la *Guía para desarrolladores de AWS IoT Core *.  
Para ayudarte a gestionar mejor el número de dispositivos y los dispositivos que se registran automáticamente en el tuyo Cuenta de AWS, puedes especificar un enlace previo al aprovisionamiento al crear una plantilla de aprovisionamiento de flotas. Un enlace de preaprovisionamiento es una AWS Lambda función que valida los parámetros de plantilla que proporcionan los dispositivos durante el registro. Por ejemplo, puede crear un enlace previo al aprovisionamiento que compruebe un ID de un dispositivo con una base de datos para comprobar que el dispositivo tiene permiso de aprovisionamiento. Para obtener más información, consulte los [enlaces previos al aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) en la *Guía para desarrolladores de AWS IoT Core *.

**Cómo crear un certificado de reclamación de aprovisionamiento y una clave privada**

1. Cree una carpeta en la que pueda descargar el certificado de reclamación y la clave privada.

   ```
   mkdir claim-certs
   ```

1. Cree y guarde un certificado y una clave privada para usarlos en el aprovisionamiento. AWS IoT proporciona certificados de cliente firmados por la autoridad de certificación (CA) raíz de Amazon.

------
#### [ Linux or Unix ]

   ```
   aws iot create-keys-and-certificate \
     --certificate-pem-outfile "claim-certs/claim.pem.crt" \
     --public-key-outfile "claim-certs/claim.public.pem.key" \
     --private-key-outfile "claim-certs/claim.private.pem.key" \
     --set-as-active
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iot create-keys-and-certificate ^
     --certificate-pem-outfile "claim-certs/claim.pem.crt" ^
     --public-key-outfile "claim-certs/claim.public.pem.key" ^
     --private-key-outfile "claim-certs/claim.private.pem.key" ^
     --set-as-active
   ```

------
#### [ PowerShell ]

   ```
   aws iot create-keys-and-certificate `
     --certificate-pem-outfile "claim-certs/claim.pem.crt" `
     --public-key-outfile "claim-certs/claim.public.pem.key" `
     --private-key-outfile "claim-certs/claim.private.pem.key" `
     --set-as-active
   ```

------

   La respuesta contiene información sobre el certificado, si la solicitud se realiza correctamente. Guarde el ARN del certificado para usarlo más adelante.

1. Cree y adjunte una AWS IoT política que permita a los dispositivos usar el certificado para crear certificados de dispositivo únicos y aprovisionarlos con la plantilla de aprovisionamiento de flotas. La siguiente política permite acceder a la API MQTT de aprovisionamiento de dispositivos. Para obtener más información, consulte la [API MQTT de aprovisionamiento de dispositivos](https://docs.aws.amazon.com/iot/latest/developerguide/fleet-provision-api.html) en la *Guía para desarrolladores de AWS IoT Core *.

   Haga lo siguiente:

   1. Cree un archivo que contenga el documento AWS IoT de política que requieren los dispositivos principales de Greengrass.

      <a name="nano-command-intro"></a>Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

      ```
      nano greengrass-provisioning-claim-iot-policy.json
      ```

      Copie el siguiente JSON en el archivo.
      + Sustituya cada instancia por la *region* instancia en la Región de AWS que configuró el aprovisionamiento de la flota.
      + Sustituya cada instancia de *account-id* por su Cuenta de AWS ID.
      + Sustituya cada instancia *GreengrassFleetProvisioningTemplate* de por el nombre de la plantilla de aprovisionamiento de flota que creó en la sección anterior.

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:Connect",
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "iot:Publish",
              "iot:Receive"
            ],
            "Resource": [
            "arn:aws:iot:us-east-1:123456789012:topic/$aws/certificates/create/*",
        "arn:aws:iot:us-east-1:123456789012:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*"
            ]
          },
          {
            "Effect": "Allow",
            "Action": "iot:Subscribe",
            "Resource": [
            "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/certificates/create/*",
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*"
            ]
          }
        ]
      }
      ```

------

   1. Cree una AWS IoT política a partir del documento de política.
      + *GreengrassProvisioningClaimPolicy*Sustitúyala por el nombre de la política que se va a crear.

      ```
      aws iot create-policy --policy-name GreengrassProvisioningClaimPolicy --policy-document file://greengrass-provisioning-claim-iot-policy.json
      ```

      Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

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

****  

      ```
      {
        "policyName": "GreengrassProvisioningClaimPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassProvisioningClaimPolicy",
        "policyDocument": "{
          \"Version\": \"2012-10-17\",
          \"Statement\": [
            {
              \"Effect\": \"Allow\",
              \"Action\": \"iot:Connect\",
              \"Resource\": \"*\"
            },
            {
              \"Effect\": \"Allow\",
              \"Action\": [
                \"iot:Publish\",
                \"iot:Receive\"
              ],
              \"Resource\": [
              \"arn:aws:iot:us-east-1:123456789012:topic/$aws/certificates/create/*\",
        \"arn:aws:iot:us-east-1:123456789012:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\"
              ]
            },
            {
              \"Effect\": \"Allow\",
              \"Action\": \"iot:Subscribe\",
              \"Resource\": [
              \"arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/certificates/create/*\",
        \"arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\"
              ]
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

------

1. Adjunte la AWS IoT política al certificado de notificación de aprovisionamiento.
   + *GreengrassProvisioningClaimPolicy*Sustitúyala por el nombre de la política que se va a adjuntar.
   + Sustituya el ARN de destino por el ARN del certificado de reclamación de aprovisionamiento.

   ```
   aws iot attach-policy --policy-name GreengrassProvisioningClaimPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
   ```

   El comando no tiene ningún resultado si la solicitud se realiza correctamente.

Ahora tiene un certificado de notificación de aprovisionamiento y una clave privada que los dispositivos pueden usar para registrarse AWS IoT y aprovisionarse como dispositivos principales de Greengrass. Puede incrustar el certificado de reclamación y la clave privada en los dispositivos durante la fabricación, o bien copiar el certificado y la clave en los dispositivos antes de instalar el software AWS IoT Greengrass Core. Para obtener más información, consulte [Instale el software AWS IoT Greengrass principal con aprovisionamiento AWS IoT de flota](fleet-provisioning.md).

# Configurar el complemento de aprovisionamiento de AWS IoT flotas
<a name="fleet-provisioning-configuration"></a>

El complemento de aprovisionamiento de AWS IoT flotas proporciona los siguientes parámetros de configuración que puede personalizar al [instalar el software AWS IoT Greengrass Core con el](fleet-provisioning.md) aprovisionamiento de flotas.

`rootPath`  
La ruta a la carpeta que se va a utilizar como raíz del software AWS IoT Greengrass principal.

`awsRegion`  
La Región de AWS que utiliza el complemento de aprovisionamiento de flotas para aprovisionar AWS recursos.

`iotDataEndpoint`  
<a name="nucleus-component-configuration-iot-data-endpoint"></a>El punto final AWS IoT de datos para su. Cuenta de AWS

`iotCredentialEndpoint`  
<a name="nucleus-component-configuration-iot-cred-endpoint"></a>El punto final de AWS IoT credenciales para su Cuenta de AWS.

`iotRoleAlias`  
<a name="nucleus-component-configuration-iot-role-alias"></a>El alias del AWS IoT rol que apunta a un rol de IAM de intercambio de fichas. El proveedor de AWS IoT credenciales asume esta función para permitir que el dispositivo principal de Greengrass interactúe con AWS los servicios. Para obtener más información, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

`provisioningTemplate`  
La plantilla de aprovisionamiento de AWS IoT flota que se utilizará para AWS aprovisionar recursos. Esta plantilla debe especificar lo siguiente:  <a name="installation-fleet-provisioning-template-requirements"></a>
+ Cualquier AWS IoT cosa: un recurso. Puede especificar una lista de grupos de objetos existentes para implementar componentes en cada dispositivo cuando esté en línea.
+ Un recurso AWS IoT político. Este recurso puede definir al menos una de las siguientes propiedades:
  + El nombre de una AWS IoT política existente. Si elige esta opción, los dispositivos principales que cree a partir de esta plantilla utilizarán la misma AWS IoT política y podrá gestionar sus permisos como una flota.
  + Un documento AWS IoT de política. Si elige esta opción, cada dispositivo principal que cree a partir de esta plantilla utilizará una AWS IoT política única y podrá administrar los permisos de cada dispositivo principal individual.
+ Un recurso AWS IoT de certificados. Este recurso de certificado debe usar el parámetro `AWS::IoT::Certificate::Id` para adjuntar el certificado al dispositivo principal. Para obtener más información, consulte el [Just-in-time aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html) en la *Guía para AWS IoT desarrolladores*.
Para más información, consulte [Plantillas de aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html) en la *Guía para desarrolladores de AWS IoT Core *.

`claimCertificatePath`  
La ruta al certificado de reclamación de aprovisionamiento de la plantilla de aprovisionamiento que especifica en `provisioningTemplate`. Para obtener más información, consulta [CreateProvisioningClaim](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningClaim.html) en la *AWS IoT Core Referencia de la API de *.

`claimCertificatePrivateKeyPath`  
La ruta a la clave privada del certificado de reclamación de aprovisionamiento de la plantilla de aprovisionamiento que especifica en `provisioningTemplate`. Para obtener más información, consulta [CreateProvisioningClaim](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningClaim.html) en la *AWS IoT Core Referencia de la API de *.  
Las claves privadas de la notificación de aprovisionamiento deben estar protegidas en todo momento, también en el dispositivo principal de Greengrass. Te recomendamos que utilices CloudWatch las estadísticas y los registros de Amazon para detectar indicios de uso indebido, como el uso no autorizado del certificado de reclamación para aprovisionar dispositivos. Si detecta un uso incorrecto, deshabilite el certificado de notificación de aprovisionamiento para que no se pueda utilizar para el aprovisionamiento de dispositivos. Para obtener más información, consulte [Monitorear AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) en la *Guía para desarrolladores de AWS IoT Core *.  
Para ayudarte a gestionar mejor el número de dispositivos y los dispositivos que se registran automáticamente en el tuyo Cuenta de AWS, puedes especificar un enlace previo al aprovisionamiento al crear una plantilla de aprovisionamiento de flotas. Un enlace de preaprovisionamiento es una AWS Lambda función que valida los parámetros de plantilla que proporcionan los dispositivos durante el registro. Por ejemplo, puede crear un enlace previo al aprovisionamiento que compruebe un ID de un dispositivo con una base de datos para comprobar que el dispositivo tiene permiso de aprovisionamiento. Para obtener más información, consulte los [enlaces previos al aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) en la *Guía para desarrolladores de AWS IoT Core *.

`rootCaPath`  
La ruta al certificado de la autoridad de certificación (CA) raíz de Amazon.

`templateParameters`  
(Opcional) El mapa de parámetros que se debe proporcionar a la plantilla de aprovisionamiento de la flota. Para obtener más información, consulte [la sección de parámetros de las plantillas de aprovisionamiento](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html#parameters-section) en la *Guía para desarrolladores de AWS IoT Core *.

`deviceId`  
(Opcional) El identificador del dispositivo que se utilizará como ID de cliente cuando el complemento de aprovisionamiento de flotas cree una conexión MQTT a AWS IoT.  
Predeterminado: un UUID con asignación al azar.

`mqttPort`  
(Opcional) El puerto que se utilizará para las conexiones MQTT.  
Valor predeterminado: `8883`

`proxyUrl`  
(Opcional) La dirección URL del servidor proxy, en el formato `scheme://userinfo@host:port`. Para utilizar un proxy HTTPS, debe utilizar la versión 1.1.0 o posterior del complemento de aprovisionamiento de flotas.  <a name="nucleus-component-configuration-proxy-url-segments"></a>
+ `scheme`: el esquema, que debe ser `http` o `https`.
**importante**  
<a name="https-proxy-greengrass-nucleus-requirement"></a>Los dispositivos principales de Greengrass deben ejecutar la versión 2.5.0 o versiones posteriores del [núcleo de Greengrass ](greengrass-nucleus-component.md) para usar proxies HTTPS.  
Si configura un proxy HTTPS, debe agregar el certificado de la CA del servidor proxy al certificado de la CA raíz de Amazon del dispositivo principal. Para obtener más información, consulte [Permita que el dispositivo principal confíe en un proxy HTTPS](configure-greengrass-core-v2.md#https-proxy-certificate-trust).
+ `userinfo`: (opcional) la información de nombre de usuario y contraseña. Si especifica esta información en `url`, el dispositivo principal de Greengrass ignora los campos `username` y `password`.
+ `host`: el nombre de host o dirección IP del servidor proxy.
+ `port`: (opcional) el número de puerto. Si no especifica el puerto, el dispositivo principal de Greengrass usará los siguientes valores predeterminados:
  + `http`: 80
  + `https`: 443

`proxyUserName`  
(Opcional) El nombre de usuario que autentica el servidor proxy.

`proxyPassword`  
(Opcional) El nombre de usuario que autentica el servidor proxy.

csrPath  
(Opcional) La ruta al archivo de solicitud de firma de certificado (CSR) que se utilizará para crear el certificado del dispositivo a partir de una CSR. Para obtener más información, consulte [Aprovisionamiento por reclamación](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#claim-based) en la *Guía para desarrolladores de AWS IoT Core *.

csrPrivateKeyRuta  
(Opcional, obligatorio si se declara `csrPath`) La ruta a la clave privada utilizada para generar la CSR. La clave privada debe haberse utilizado para generar la CSR. Para obtener más información, consulte [Aprovisionamiento por reclamación](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#claim-based) en la *Guía para desarrolladores de AWS IoT Core *.

certificatePath  
(Opcional) Ruta que se utilizará para guardar el certificado del dispositivo descargado.

privateKeyPath  
(Opcional) Ruta que se utilizará para guardar la clave privada del dispositivo descargado.

# Registro de cambios del complemento de aprovisionamiento de flotas AWS IoT
<a name="fleet-provisioning-changelog"></a>

En la tabla a continuación, se describen los cambios de cada versión del aprovisionamiento de flotas AWS IoT por complemento de reclamación (`aws.greengrass.FleetProvisioningByClaim`).


|  Versión  |  Cambios  | 
| --- | --- | 
|  1.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.0.0  |  Versión inicial.  | 