Conexión de dispositivos a AWS IoT - AWS IoT Core

Conexión de dispositivos a AWS IoT

Los dispositivos se conectan a AWS IoT y a otros servicios mediante AWS IoT Core. Con AWS IoT Core, los dispositivos envían y reciben mensajes mediante puntos de conexión específicos de su cuenta. Los SDK de dispositivos AWS IoT admiten comunicaciones entre dispositivos mediante los protocolos MQTT y WSS. Para obtener más información acerca de los protocolos que pueden usar los dispositivos, consulte Protocolos de comunicación de dispositivos.

Agente de mensajes

AWS IoT administra la comunicación entre dispositivos a través de un agente de mensajes. Los dispositivos y los clientes publican los mensajes en el agente de mensajes y también se suscriben a los mensajes que publica el agente de mensajes. Los mensajes se identifican mediante un tema definido por la aplicación. Cuando el agente de mensajes recibe un mensaje publicado por un dispositivo o un cliente, lo vuelve a publicar en los dispositivos y clientes que estén suscritos a ese tema. El agente de mensajes también reenvía mensajes al motor de reglas de AWS IoT, que puede actuar sobre el contenido del mensaje.

Seguridad de los mensajes de AWS IoT

Las conexiones de dispositivos de AWS IoT utilizan Certificados de cliente X.509 y AWS Signature V4 para la autenticación. Las comunicaciones entre dispositivos están protegidas con TLS versión 1.3. Además, AWS IoT exige que los dispositivos envíen la extensión de indicación del nombre del servidor (SNI) cuando se conectan. Para obtener más información, consulte Seguridad de transporte en AWS IoT.

Datos de dispositivos y puntos de conexión de servicio de AWS IoT

importante

Puede almacenar o almacenar en caché los puntos de conexión de su dispositivo. Esto significa que no tendrá que consultar la API de DescribeEndpoint cada vez que conecte un dispositivo nuevo. Los puntos de conexión no cambiarán después de que AWS IoT Core los cree para su cuenta.

Cada cuenta tiene varios puntos de conexión de dispositivo que son exclusivos de la cuenta y admiten funciones de IoT específicas. Los puntos de conexión de datos de dispositivos de AWS IoT admiten un protocolo de publicación/suscripción diseñado para las necesidades de comunicación de los dispositivos IoT; sin embargo, otros clientes, como aplicaciones y servicios, también pueden usar esta interfaz si la aplicación requiere las funciones especializadas que proporcionan estos puntos de conexión. Los puntos de conexión de servicio de dispositivos de AWS IoT permiten el acceso centrado en los dispositivos a los servicios de seguridad y administración.

Para saber cuál es el punto de conexión de datos del dispositivo de su cuenta, consulte la página Configuración de la consola de AWS IoT Core.

Si quiere saber cuál es el punto de conexión del dispositivo de su cuenta para una finalidad concreta, incluido el punto de conexión de datos del dispositivo, utilice el comando describe-endpoint de la CLI que se muestra aquí o la API de REST DescribeEndpoint y proporcione el valor del parámetro endpointType de la siguiente tabla.

aws iot describe-endpoint --endpoint-type endpointType

Este comando devuelve un iot-endpoint en el formato siguiente: account-specific-prefix.iot.aws-region.amazonaws.com.

Cada cliente tiene un punto de conexión iot:Data-ATS y iot:Data. Cada punto de conexión utiliza un certificado X.509 para autenticar al cliente. Recomendamos a los clientes que utilicen el tipo de punto de conexión iot:Data-ATS más reciente para evitar problemas relacionados con la desconfianza generalizada en las entidades de certificación de Symantec. Proporcionamos el punto de conexión iot:Data con el fin de que los dispositivos puedan recuperar puntos de conexión de datos antiguos que utilicen certificados VeriSign para la compatibilidad con versiones anteriores. Para obtener más información, consulte Autenticación del servidor.

puntos de conexión de AWS IoT para dispositivos

Finalidad del punto de conexión

Valor de endpointType

Descripción

Operaciones de plano de datos de AWS IoT Core

iot:Data-ATS

Se utiliza para enviar y recibir datos desde y hacia los componentes agente de mensajes, Device Shadow y Rules Engine de AWS IoT.

iot:Data-ATS devuelve un punto de conexión de datos firmados por ATS.

Operaciones de plano de datos de AWS IoT Core (heredadas)

iot:Data

iot:Data devuelve un punto de conexión de datos firmado por VeriSign que se proporciona para garantizar la compatibilidad con versiones anteriores. Los puntos de conexión de Symantec (iot:Data) no admiten MQTT 5.

Acceso con credenciales de AWS IoT Core

iot:CredentialProvider

Se utiliza para intercambiar el certificado X.509 integrado en un dispositivo por credenciales temporales con el fin de conectarse directamente con otros servicios de AWS. Para obtener más información acerca de cómo conectarse a otros servicios de AWS, consulte Autorizar llamadas directas a servicios de AWS.

Operaciones de datos de trabajos de AWS IoT Device Management

iot:Jobs

Se utiliza para permitir que los dispositivos interactúen con el servicio AWS IoT Jobs mediante las API HTTPS para dispositivos Jobs.

iot:Jobs solo se puede usar para IPv4. Si usa puntos de conexión de doble pila (IPv4 e IPv6), utilice el tipo de punto de conexión iot:Data-ATS.

Operaciones de AWS IoT Device Advisor

iot:DeviceAdvisor

Un tipo de punto de conexión de prueba que se utiliza para probar dispositivos con Device Advisor. Para obtener más información, consulte Asesor de dispositivos.

Beta de datos de AWS IoT Core (versión preliminar)

iot:Data-Beta

Un tipo de punto de conexión reservado para las versiones beta. Para obtener información sobre su uso actual, consulte Configuraciones de dominio.

También puede usar su propio nombre de dominio completo (FQDN), como ejemplo.com y el certificado de servidor asociado para conectar los dispositivos a AWS IoT mediante Configuraciones de dominio.

SDK de dispositivos AWS IoT

Los SDK de dispositivos AWS IoT le ayudan a conectar sus dispositivos IoT a AWS IoT Core y son compatibles con los protocolos MQTT y MQTT a través de WSS.

Los SDK de dispositivos AWS IoT se diferencian de los SDK de AWS en que los SDK de dispositivos de AWS IoT admiten las necesidades de comunicación especializadas de los dispositivos IoT, pero no admiten todos los servicios compatibles con los SDK de AWS. Los SDK de dispositivos AWS IoT son compatibles con los SDK de AWS que admiten todos los servicios de AWS; sin embargo, utilizan diferentes métodos de autenticación y se conectan a diferentes puntos de conexión, lo que podría hacer que el uso de los SDK de AWS no fuera práctico en un dispositivo IoT.

Dispositivos móviles

Los AWS Mobile SDK son compatibles tanto con las comunicaciones MQTT entre dispositivos como con algunas de las API de servicio de AWS IoT y las API de otros servicios de AWS. Si está desarrollando en un dispositivo móvil compatible, revise el SDK para ver si es la mejor opción para desarrollar su solución de IoT.

C++

AWS IoT SDK de dispositivos para C

El SDK de dispositivos AWS IoT para C++ permite a los desarrolladores compilar aplicaciones conectadas mediante AWS y las API de los servicios de AWS IoT Core. En concreto, este SDK se diseñó para los dispositivos que no tienen limitación de recursos y requieren características avanzadas, como la puesta en cola de mensajes, la compatibilidad con varios procesos y las características de idioma más actualizadas. Para obtener más información, consulte los siguientes temas:

Python

AWS IoT SDK de dispositivos para Python

El SDK de dispositivos AWS IoT para Python permite a los desarrolladores escribir scripts de Python para tener acceso con sus dispositivos a la plataforma de AWS IoT mediante MQTT o MQTT a través protocolo WebSocket Secure (WSS). Al conectar sus dispositivos a las API de los servicios de AWS IoT Core, los usuarios pueden trabajar de forma segura con el agente de mensajes, las reglas y el servicio Device Shadow proporcionado por AWS IoT Core, y con otros servicios de AWS como AWS Lambda, Amazon Kinesis, Amazon S3, etc.

JavaScript

AWS IoT SDK de dispositivos para JavaScript

El SDK de dispositivos AWS IoT para JavaScript permite a los desarrolladores escribir aplicaciones de JavaScript que puedan acceder a las API de AWS IoT Core mediante MQTT o MQTT a través del protocolo WebSocket. Se puede utilizar en entornos de Node.js y aplicaciones de navegador. Para obtener más información, consulte los siguientes temas:

Java

AWS IoT SDK de dispositivos para Java

El SDK de dispositivos AWS IoT para Java permite a los desarrolladores de Java acceder a las API de AWS IoT Core mediante MQTT o MQTT a través del protocolo WebSocket. El SDK admite el servicio Device Shadow. Puede tener acceso a las sombras mediante los métodos GET, UPDATE y DELETE de HTTP. El SDK es también compatible con un modelo de acceso a sombras simplificado, lo que permite a los desarrolladores intercambiar datos con las sombras utilizando métodos getter y setter, sin tener que serializar ni deserializar documentos JSON. Para obtener más información, consulte los siguientes temas:

Embedded C

AWS IoT SDK de dispositivos para Embedded C

importante

Este SDK está diseñado para que lo utilicen desarrolladores de software incrustado con experiencia.

El AWS IoT Device SDK para Embedded C (C-SDK) es un conjunto de archivos de origen C con licencia de código abierto del MIT, que se puede utilizar en aplicaciones integradas para establecer conexiones seguras con dispositivos IoT en AWS IoT Core. Incluye las bibliotecas MQTT, JSON Parser y AWS IoT Device Shadow, entre otras. Se distribuye como código fuente y está diseñado para integrarse en el firmware cliente junto con código de aplicación, otras bibliotecas y, opcionalmente, RTOS (Real Time Operating System).

AWS IoT Device SDK para Embedded C generalmente se dirige a dispositivos con limitaciones de recursos que requieren un tiempo de ejecución optimizado del lenguaje C. Puede usar el SDK en cualquier sistema operativo y alojarlo en cualquier tipo de procesador (por ejemplo, MCU y MPU). Si su dispositivo tiene suficientes recursos de memoria y de procesamiento disponibles, le recomendamos que utilice uno de los otros SDK para móviles y dispositivos de AWS IoT, como el SDK de dispositivos AWS IoT para C++, Java, JavaScript o Python.

Para obtener más información, consulte los siguientes temas: