As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Protocolos de comunicação do dispositivo
AWS IoT Core suporta dispositivos e clientes que usam os protocolos MQTT e MQTT over WebSocket Secure (WSS) para publicar e assinar mensagens, e dispositivos e clientes que usam o protocolo HTTPS para publicar mensagens. Todos os protocolos suportam IPv4 IPv6 e. Esta seção descreve as diferentes opções de conexão para dispositivos e clientes.
Versões do protocolo TLS
AWS IoT Core usa TLS
Os AWS IoT Dispositivo SDKs oferecem suporte a MQTT e MQTT via WSS e aos requisitos de segurança das conexões do cliente. Recomendamos usar os AWS IoT Dispositivo SDKs para conectar clientes à AWS IoT.
Protocolos, mapeamentos de porta e autenticação
A forma como um dispositivo ou cliente se conecta ao agente de mensagens é configurável usando um tipo de autenticação. Por padrão, ou quando nenhuma extensão SNI é enviada, o método de autenticação é baseado no protocolo de aplicativo, na porta e na extensão TLS de negociação de protocolo da camada de aplicativo (ALPN) que os dispositivos usam. A tabela a seguir lista a autenticação esperada com base na porta, porta e ALPN.
Protocolo | Operações compatíveis | Autenticação | Porta | Nome do protocolo ALPN |
---|---|---|---|---|
Acabou o MQTT WebSocket |
Publicar/assinar | Signature versão 4 | 443 |
N/D |
Acabou o MQTT WebSocket |
Publicar/assinar | Autenticação personalizada | 443 |
N/D |
MQTT |
Publicar/assinar |
Certificado do cliente X.509 |
443† |
|
MQTT | Publicar/assinar | Certificado do cliente X.509 | 8883 | N/D |
MQTT |
Publicar/assinar |
Autenticação personalizada |
443† |
|
HTTPS |
Somente publicação |
Signature versão 4 |
443 |
N/D |
HTTPS |
Somente publicação |
Certificado do cliente X.509 |
443† |
|
HTTPS | Somente publicação | Certificado do cliente X.509 | 8443 | N/D |
HTTPS | Somente publicação | Autenticação personalizada | 443 | N/D |
Application Layer Protocol Negotiation (ALPN)
† Ao usar configurações de endpoint padrão, os clientes que se conectam na porta 443 com autenticação de certificado de cliente X.509 devem implementar a extensão TLS de negociação de protocolo de camada de aplicativo (ALPN)ClientHello
Na porta 443, o endpoint IoT:Data-ATS suporta ALPN x-amzn-http-ca HTTP, mas o endpoint IoT:Jobs não.
Na porta 8443 HTTPS e na porta 443 MQTT com ALPN x-amzn-mqtt-ca, a autenticação personalizada não pode ser usada.
Os clientes se conectam aos endpoints Conta da AWS de seus dispositivos. Consulte AWS IoT dados do dispositivo e endpoints de serviço para ver informações sobre como encontrar os endpoints do dispositivo da sua conta.
nota
AWS SDKs não exigem o URL inteiro. Eles exigem apenas o nome do host do endpoint, como a pubsub.py
amostra do AWS IoT Device SDK for Python on
Protocolo |
Endpoint ou URL |
---|---|
MQTT |
|
MQTT via WSS |
|
HTTPS |
|
Escolher um protocolo de aplicativo para a comunicação do dispositivo
Para a maioria das comunicações de dispositivos de IoT por meio dos endpoints do dispositivo, convém usar os protocolos Secure MQTT ou MQTT over WebSocket Secure (WSS); no entanto, os endpoints do dispositivo também oferecem suporte a HTTPS.
A tabela a seguir compara como AWS IoT Core usa os dois protocolos de alto nível (MQTT e HTTPS) para comunicação com dispositivos.
Recurso |
||
---|---|---|
Suporte para publicação/assinatura |
Publicação e assinatura |
Somente publicação |
Compatibilidade com o SDK |
AWS O dispositivo SDKs suporta protocolos MQTT e WSS |
Não há suporte para SDK, mas você pode usar métodos específicos de linguagem para fazer solicitações HTTPS |
Suporte à qualidade de serviço |
A QoS é compatível enviando um parâmetro de string de consulta ?qos=qos em que o valor pode ser 0 ou 1. Você pode adicionar essa string de consulta para publicar uma mensagem com o valor de QoS desejado. |
|
Pode receber mensagens perdidas enquanto o dispositivo estava off-line | Sim | Não |
Suporte a campo de |
Sim |
Não |
Detecção de desconexão do dispositivo |
Sim |
Não |
Comunicações seguras |
Sim. Consulte Protocolos, mapeamentos de porta e autenticação |
Sim. Consulte Protocolos, mapeamentos de porta e autenticação |
Definições de tópico |
Aplicativo definido |
Aplicativo definido |
Formato dos dados de mensagem |
Aplicativo definido |
Aplicativo definido |
Sobrecarga do protocolo | Menor | Mais alto |
Consumo de energia | Menor | Mais alto |
Escolher um tipo de autenticação para a comunicação do seu dispositivo
Você pode configurar o tipo de autenticação para seu endpoint de IoT usando endpoints configuráveis. Como alternativa, use a configuração padrão e determine como seus dispositivos são autenticados com a combinação de protocolo de aplicativo, porta e extensão ALPN TLS. O tipo de autenticação escolhido determina como seus dispositivos serão autenticados ao se conectarem AWS IoT Core. Existem cinco tipos de autenticação:
certificado X.509
Autentique dispositivos usando certificados de cliente X.509, que são AWS IoT Core validados para autenticar o dispositivo. Esse tipo de autenticação funciona com os protocolos Secure MQTT (MQTT over TLS) e HTTPS.
Certificado X.509 com autorizador personalizado
Autentique dispositivos usando certificados de cliente X.509 e execute ações adicionais de autenticação usando um autorizador personalizado, que receberá informações do certificado de cliente X.509. Esse tipo de autenticação funciona com os protocolos Secure MQTT (MQTT over TLS) e HTTPS. Esse tipo de autenticação só é possível usando endpoints configuráveis com autenticação personalizada X.509. Não há opção ALPN.
AWS Signature versão 4 (SigV4)
Autentique dispositivos usando o Cognito ou seu serviço de backend, oferecendo suporte à federação social e corporativa. Esse tipo de autenticação funciona com os protocolos MQTT over WebSocket Secure (WSS) e HTTPS.
Autorizador personalizado
Autentique dispositivos configurando uma função do Lambda para processar as informações de autenticação personalizadas enviadas para o AWS IoT Core. Esse tipo de autenticação funciona com os protocolos Secure MQTT (MQTT over TLS), HTTPS e MQTT over WebSocket Secure (WSS).
Padrão
Autentique dispositivos com base na extensão de negociação de protocolo da camada de and/or aplicativo de porta (ALPN) que os dispositivos usam. Não há suporte para algumas opções adicionais de autenticação. Para obter mais informações, consulte Protocolos, mapeamentos de porta e autenticação.
A tabela abaixo mostra todas as combinações compatíveis de tipos de autenticação e protocolos de aplicativos.
Tipo de autenticação | Secure MQTT (MQTT over TLS) | MQTT via WebSocket Secure (WSS) | HTTPS | Padrão |
---|---|---|---|---|
certificado X.509 | ✓ | ✓ | ||
Certificado X.509 com autorizador personalizado | ✓ | ✓ | ||
AWS Signature versão 4 (SigV4) | ✓ | ✓ | ||
Autorizador personalizado | ✓ | ✓ | ✓ | |
Padrão | ✓ | ✓ |
Limites de duração da conexão
Não é garantido que as conexões HTTPS durem mais do que o tempo necessário para receber e responder às solicitações.
A duração da conexão MQTT depende do atributo de autenticação usado. A tabela a seguir lista a duração máxima da conexão em condições ideais para cada atributo.
Recurso |
Duração máxima * |
---|---|
Certificado do cliente X.509 |
1 a 2 semanas |
Autenticação personalizada |
1 a 2 semanas |
Signature versão 4 |
Até 24 horas |
* Não garantido
Com certificados X.509 e autenticação personalizada, a duração da conexão não tem um limite rígido, mas pode ser de apenas alguns minutos. Interrupções de conexão podem ocorrer por vários motivos. A lista a seguir contém alguns dos motivos mais comuns.
-
Interrupções na disponibilidade de Wi-Fi
-
Interrupções na conexão do provedor de serviços de Internet (ISP)
-
Patches de serviço
-
Implantações de serviços
-
Autoescalabilidade do serviço
-
Host de serviço indisponível
-
Problemas e atualizações do balanceador de carga
-
Erros no lado do cliente,
Seus dispositivos devem implementar estratégias para detectar desconexões e reconectar-se. Para obter mais informações sobre eventos de desconexão e orientações sobre como lidar com eles, consulte Eventos de conexão/desconexão em Eventos de ciclo de vida.