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.
Configurar el aprovisionamiento de AWS IoT flota para los dispositivos principales de Greengrass
Para instalar el software AWS IoT Greengrass Core con el aprovisionamiento de flotas, 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 suCuenta de AWS.
-
Una función de IAM de intercambio de fichas, que los dispositivos principales utilizan para autorizar las llamadas a AWS los servicios.
-
Un alias de AWS IoT función que apunta a la función 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:
-
Cualquier AWS IoT cosa, un recurso. Puede especificar una lista de grupos de cosas existentes para implementar componentes en cada dispositivo cuando esté en línea.
-
Un recurso AWS IoT de políticas. Este recurso puede definir 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
AWS::IoT::Certificate::Id
parámetro para adjuntar el certificado al dispositivo principal. Para obtener más información, consulte el ust-in-time aprovisionamiento de J en la Guía para AWS IoT desarrolladores.
-
-
Un certificado de AWS IoT aprovisionamiento y una clave privada para la plantilla de aprovisionamiento de la flota. 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
El aprovisionamiento afirma que las claves privadas deben estar protegidas en todo momento, incluso en los dispositivos principales 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 detectas un uso indebido, desactiva 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 en la Guía para desarrolladores de AWS IoT Core.
Para ayudarte a gestionar mejor la cantidad de dispositivos y los dispositivos que se registran automáticamente en el tuyoCuenta 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 de preaprovisionamiento que compare el ID de un dispositivo con una base de datos para comprobar que el dispositivo tiene permiso de aprovisionamiento. Para obtener más información, consulta los ganchos de aprovisionamiento previo en la Guía para desarrolladores. AWS IoT Core
-
Una 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 flotas.
Temas
Crea una función de intercambio de fichas
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 LogsAWS 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.
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 fichas de un dispositivo, pero mantener la configuración del dispositivo igual. Para obtener más información, consulte Autorizar llamadas directas a AWS los servicios en la Guía para AWS IoT Coredesarrolladores.
En esta sección, se crea una función de IAM de intercambio de fichas y un alias de AWS IoT función que apunte a esa función. Si ya ha configurado un dispositivo principal de Greengrass, puede utilizar su función de intercambio de fichas y su alias de función en lugar de crear otros nuevos.
Para crear un rol de IAM de intercambio de fichas
-
Cree una función de IAM que su dispositivo pueda utilizar como función de intercambio de fichas. Haga lo siguiente:
-
Cree un archivo que contenga el documento de política de confianza que requiere la función de intercambio de tokens.
Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano para crear el archivo.
nano device-role-trust-policy.json
Copia el siguiente JSON en el archivo.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Cree la función de intercambio de fichas con el documento de política de confianza.
-
Sustituya
GreengrassV2 TokenExchangeRole
por el nombre del rol de IAM que desee crear.
aws iam create-role --role-name
GreengrassV2TokenExchangeRole
--assume-role-policy-document file://device-role-trust-policy.jsonSi la solicitud se realiza correctamente, la respuesta es similar a la del 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" } ] } }
-
-
Cree un archivo que contenga el documento de política de acceso que requiere la función de intercambio de tokens.
Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano para crear el archivo.
nano device-role-access-policy.json
Copia 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 los componentes de los depósitos de S3. Para implementar componentes personalizados que definan artefactos en Amazon S3, debe añadir permisos al rol para permitir que su dispositivo principal recupere artefactos de componentes. Para obtener más información, consulte Permita el acceso a los depósitos de S3 para los artefactos de los componentes.
Si aún no tiene un depósito de S3 para los artefactos de los componentes, puede añadir estos permisos más adelante, después de crear un depósito.
-
Cree la política de IAM a partir del documento de política.
-
Sustituya
GreengrassV2 TokenExchangeRoleAccess
por el nombre de la política de IAM que desee crear.
aws iam create-policy --policy-name
GreengrassV2TokenExchangeRoleAccess
--policy-document file://device-role-access-policy.jsonSi la solicitud se realiza correctamente, la respuesta es similar a la del 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" } }
-
-
Adjunte la política de IAM a la función de intercambio de fichas.
-
Sustituya
GreengrassV2 TokenExchangeRole
por el nombre de la función de IAM. -
Sustituya 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-arnarn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
El comando no tiene ningún resultado si la solicitud se realiza correctamente.
-
-
-
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. -
Sustituya 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-arnarn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
Si la solicitud se realiza correctamente, la respuesta es similar a la del ejemplo siguiente.
{ "roleAlias": "GreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" }
nota
Para crear un alias de rol, debe tener permiso para transferir el rol de IAM de intercambio de fichas. AWS IoT Si recibe un mensaje de error al intentar crear un alias de rol, compruebe que su 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 en la Guía del AWS Identity and Access Management usuario.
-
Creación de una política de AWS IoT
Después de registrar un dispositivo como una AWS IoT cosa, ese dispositivo puede usar un certificado digital para autenticarseAWS. 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 yAWS 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 nueva AWS IoT política 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 política de AWS IoT
-
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 permite el
iot:AssumeRoleWithCertificate
permiso, que permite a sus dispositivos utilizar la función de intercambio de fichas que creó en la sección anterior. Puedes restringir esta política en función de tu caso de uso. Para obtener más información, consulte AWS IoTPolítica mínima para los dispositivos AWS IoT Greengrass V2 principales.Haga lo siguiente:
-
Cree un archivo que contenga el documento AWS IoT de política que requieren los dispositivos principales de Greengrass.
Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano para crear el archivo.
nano greengrass-v2-iot-policy.json
Copia 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.
{ "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
" } ] } -
-
Cree una AWS IoT política a partir del documento de política.
-
Sustituya
GreengrassV2IoT
por el nombre ThingPolicy de la política que se va a crear.
aws iot create-policy --policy-name
GreengrassV2IoTThingPolicy
--policy-document file://greengrass-v2-iot-policy.jsonSi la solicitud se realiza correctamente, la respuesta es similar a la del siguiente ejemplo.
{ "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" } -
-
Cree una plantilla de aprovisionamiento de flota
AWS IoTLas plantillas de aprovisionamiento de flotas definen cómo aprovisionar los AWS IoT elementos, las políticas y los certificados. Para aprovisionar los dispositivos principales de Greengrass con el complemento de aprovisionamiento de flotas, debe crear una plantilla que especifique lo siguiente:
-
Cualquier AWS IoT cosa, un recurso. Puede especificar una lista de grupos de cosas existentes para implementar componentes en cada dispositivo cuando esté en línea.
-
Un recurso AWS IoT de políticas. Este recurso puede definir 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
AWS::IoT::Certificate::Id
parámetro para adjuntar el certificado al dispositivo principal. Para obtener más información, consulte el ust-in-time aprovisionamiento de J 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 cosas para implementar el software más reciente en cada dispositivo tan pronto como se conecte a Internet. Para obtener más información, consulte Implemente AWS IoT Greengrass componentes en los dispositivos.
El AWS IoT servicio requiere permisos para crear y actualizar AWS IoT recursos en sus dispositivos 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 IoTproporciona una política gestionada que permite el acceso a todos los permisos que se AWS IoT puedan utilizar al aprovisionar dispositivos. AWSIoTThingsRegistration
En esta sección, crea una función de IAM que permite AWS IoT aprovisionar recursos para los dispositivos y crea una plantilla de aprovisionamiento de flotas que utiliza esa función de IAM.
Para crear una plantilla de aprovisionamiento de flotas
-
Cree una función de IAM que AWS IoT pueda asumir el aprovisionamiento de recursos en su. Cuenta de AWS Haga lo siguiente:
-
Cree un archivo que contenga el documento de política de confianza que le AWS IoT permita asumir el rol.
Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano para crear el archivo.
nano aws-iot-trust-policy.json
Copia el siguiente JSON en el archivo.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Cree un rol de IAM con el documento de política de confianza.
-
GreengrassFleetProvisioningRole
Sustitúyalo por el nombre del rol de IAM que desee crear.
aws iam create-role --role-name
GreengrassFleetProvisioningRole
--assume-role-policy-document file://aws-iot-trust-policy.jsonSi la solicitud se realiza correctamente, la respuesta es similar a la del ejemplo siguiente.
{ "Role": { "Path": "/", "RoleName": "GreengrassFleetProvisioningRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole", "CreateDate": "2021-07-26T00:15:12+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }
-
-
Revise la AWSIoTThingsRegistration
política, que permite el acceso a todos los permisos que se AWS IoT puedan utilizar al aprovisionar dispositivos. Puedes usar esta política administrada o crear una política personalizada que defina los permisos restringidos para tu caso de uso. Si decide crear una política personalizada, hágalo ahora. -
Adjunte la política de IAM a la función de aprovisionamiento de flota.
-
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 de IAM por el ARN de la política de IAM que vaya a utilizar.
aws iam attach-role-policy --role-name
GreengrassFleetProvisioningRole
--policy-arnarn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration
El comando no tiene ningún resultado si la solicitud se realiza correctamente.
-
-
-
(Opcional) Cree un enlace de preaprovisionamiento, que es una AWS Lambda función que valida los parámetros de plantilla que los dispositivos proporcionan durante el registro. Puedes usar un enlace de preaprovisionamiento para tener más control sobre qué dispositivos y cuántos están integrados en tu dispositivo. Cuenta de AWS Para obtener más información, consulta los ganchos de aprovisionamiento previo en la Guía para desarrolladores. AWS IoT Core
-
Cree una plantilla de aprovisionamiento de flotas. Haga lo siguiente:
-
Cree un archivo que contenga el documento de plantilla de aprovisionamiento.
Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano para crear el archivo.
nano greengrass-fleet-provisioning-template.json
Escriba el documento de plantilla de aprovisionamiento. Puede empezar con el siguiente ejemplo de plantilla de aprovisionamiento, que especifica la creación de AWS IoT algo con las siguientes propiedades:
-
El nombre de la cosa es el valor que se especifica en el parámetro de la
ThingName
plantilla. -
La cosa es un miembro del grupo de cosas que se especifica en el parámetro
ThingGroupName
de plantilla. El grupo de cosas debe existir en suCuenta de AWS. -
El certificado de la cosa lleva
GreengrassV2IoTThingPolicy
adjunto el nombre de la AWS IoT política.
Para obtener más información, consulte las plantillas de aprovisionamiento en la Guía para AWS IoT Core desarrolladores.
{ "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
, yMyPolicy
MyCertificate
son nombres arbitrarios que identifican cada especificación de recursos de la plantilla de aprovisionamiento de flotas. AWS IoTno utiliza estos nombres en los recursos que crea a partir de la plantilla. Puede utilizar estos nombres o sustituirlos por valores que le ayuden a identificar cada recurso de la plantilla. -
-
Cree la plantilla de aprovisionamiento de flota a partir del documento de plantilla de aprovisionamiento.
-
GreengrassFleetProvisioningTemplate
Sustitúyala por el nombre de la plantilla que desee crear. -
Sustituya la descripción de la plantilla por una descripción de la plantilla.
-
Sustituya el ARN del rol de aprovisionamiento por el ARN del rol que creó anteriormente.
nota
Si ha creado un enlace de preaprovisionamiento, especifique el ARN de la función Lambda del enlace de preaprovisionamiento con el argumento.
--pre-provisioning-hook
--pre-provisioning-hook targetArn=
arn:aws:lambda:us-west-2:123456789012:function:GreengrassPreProvisioningHook
La respuesta es similar a la del siguiente ejemplo, si la solicitud se realiza correctamente.
{ "templateArn": "arn:aws:iot:us-west-2:123456789012:provisioningtemplate/GreengrassFleetProvisioningTemplate", "templateName": "GreengrassFleetProvisioningTemplate", "defaultVersionId": 1 }
-
-
Cree un certificado de notificación de aprovisionamiento y una clave privada
Los certificados de reclamación son certificados X.509 que permiten que los dispositivos se registren como AWS IoT cosas y recuperen 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 AWS IoT política.
En esta sección, crea el certificado de reclamación y lo configura para que los dispositivos lo utilicen con la plantilla de aprovisionamiento de flota que creó en la sección anterior.
importante
El aprovisionamiento afirma que las claves privadas deben estar protegidas en todo momento, incluso en los dispositivos principales 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 detectas un uso indebido, desactiva 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 en la Guía para desarrolladores de AWS IoT Core.
Para ayudarte a gestionar mejor la cantidad de dispositivos y los dispositivos que se registran automáticamente en el tuyoCuenta 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 de preaprovisionamiento que compare el ID de un dispositivo con una base de datos para comprobar que el dispositivo tiene permiso de aprovisionamiento. Para obtener más información, consulta los ganchos de aprovisionamiento previo en la Guía para desarrolladores. AWS IoT Core
Para crear un certificado de notificación de aprovisionamiento y una clave privada
-
Cree una carpeta en la que pueda descargar el certificado de reclamación y la clave privada.
mkdir claim-certs
-
Cree y guarde un certificado y una clave privada para usarlos en el aprovisionamiento. AWS IoTproporciona certificados de cliente firmados por la autoridad de certificación (CA) raíz de Amazon.
La respuesta contiene información sobre el certificado, si la solicitud se realiza correctamente. Guarde el ARN del certificado para usarlo más adelante.
-
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 flota. La siguiente política permite el acceso a la API MQTT de aprovisionamiento de dispositivos. Para obtener más información, consulte la API MQTT de aprovisionamiento de dispositivos en la Guía para desarrolladores. AWS IoT Core
Haga lo siguiente:
-
Cree un archivo que contenga el documento AWS IoT de política que requieren los dispositivos principales de Greengrass.
Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano para crear el archivo.
nano greengrass-provisioning-claim-iot-policy.json
Copia el siguiente JSON en el archivo.
-
Sustituya cada instancia de la
región
por aquella en la Región de AWS que configuró el aprovisionamiento de la flota. -
Sustituya cada instancia de
account-id por su ID
. Cuenta de AWS -
Sustituya cada instancia de
GreengrassFleetProvisioningTemplate
por el nombre de la plantilla de aprovisionamiento de flota que creó en la sección anterior.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:
region
:account-id
:topic/$aws/certificates/create/*", "arn:aws:iot:region
:account-id
:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate
/provision/*" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:region
:account-id
:topicfilter/$aws/certificates/create/*", "arn:aws:iot:region
:account-id
:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate
/provision/*" ] } ] } -
-
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.jsonSi la solicitud se realiza correctamente, la respuesta es similar a la del ejemplo siguiente.
{ "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:
region
:account-id
:topic/$aws/certificates/create/*\", \"arn:aws:iot:region
:account-id
:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate
/provision/*\" ] }, { \"Effect\": \"Allow\", \"Action\": \"iot:Subscribe\", \"Resource\": [ \"arn:aws:iot:region
:account-id
:topicfilter/$aws/certificates/create/*\", \"arn:aws:iot:region
:account-id
:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate
/provision/*\" ] } ] }", "policyVersionId": "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 notificación de aprovisionamiento.
aws iot attach-policy --policy-name
GreengrassProvisioningClaimPolicy
--targetarn: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.