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á.
AWS IoT Core oferece suporte a dispositivos e clientes que usam os MQTT protocolos WebSocket Secure (WSS) e o MQTT over Secure () para publicar e assinar mensagens, e dispositivos e clientes que usam o HTTPS protocolo 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.
TLSversões do protocolo
AWS IoT Core usa a TLS
O AWS IoT Dispositivo SDKs suporte MQTT e, MQTT além WSS disso, atenda 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 SNI extensão é enviada, o método de autenticação é baseado no protocolo do aplicativo, na porta e na TLS extensão Application Layer Protocol Negotiation (ALPN) que os dispositivos usam. A tabela a seguir lista a autenticação esperada com base na porta, porta ALPN e.
Protocolo | Operações compatíveis | Autenticação | Port (Porta) | ALPNnome do protocolo |
---|---|---|---|---|
MQTTterminado WebSocket |
Publicar/assinar | Signature versão 4 | 443 |
N/D |
MQTTterminado 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 |
Negociação do protocolo da camada de aplicação () ALPN
† Ao usar configurações de endpoint padrão, os clientes que se conectam na porta 443 com a autenticação de certificado de cliente X.509 devem implementar a TLS extensão Application Layer Protocol Negotiation (ALPN)ClientHello
Nas portas 8443 HTTPS e 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 SDKsnão exija o todoURL. Eles exigem apenas o nome do host do endpoint, como a pubsub.py
amostra de AWS IoT Device for SDK Python on
Protocolo |
Ponto final ou URL |
---|---|
MQTT |
|
MQTTterminado 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. HTTPS
A tabela a seguir compara como AWS IoT Core usa os dois protocolos de alto nível (MQTTeHTTPS) para comunicação de dispositivos.
Atributo |
||
---|---|---|
Suporte para publicação/assinatura |
Publicação e assinatura |
Somente publicação |
Ajuda do SDK |
AWS SDKsSuporte MQTT e WSS protocolos de dispositivos |
Não há SDK suporte, mas você pode usar métodos específicos do idioma 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, porta e ALPN TLS extensão do aplicativo. O tipo de autenticação que você escolher determina como seus dispositivos serão autenticados ao se conectar ao 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 Secure MQTT (MQTToverTLS) e HTTPS protocolos.
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 Secure MQTT (MQTToverTLS) e HTTPS protocolos. 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 MQTT mais de WebSocket Secure (WSS) e HTTPS protocolos.
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 (MQTToverTLS) e MQTT over WebSocket Secure (WSS). HTTPS
Padrão
Autentique dispositivos com base na porta e/ou na extensão de negociação de protocolo (ALPN) da camada de aplicativo 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 | Seguro MQTT (MQTTacimaTLS) | MQTTsobre 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
HTTPSNão é garantido que as conexões durem mais do que o tempo necessário para receber e responder às solicitações.
MQTTa duração da conexão depende do recurso de autenticação que você usa. A tabela a seguir lista a duração máxima da conexão em condições ideais para cada atributo.
Atributo |
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 de 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.