Introdução à Internet das Coisas com AWS IoT
-
Upload
alexandre-santos -
Category
Technology
-
view
17 -
download
0
Transcript of Introdução à Internet das Coisas com AWS IoT
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Angelo Carvalho | Arquiteto de Soluções
22 de Setembro de 2016
Introdução à Internet das Coisas com AWS IoT
Publish / Subscribe
Suporte a Protocolos PadrõesMQTT, HTTP, WebSockets
Conexões de Longa DuraçãoReceber sinais da nuvem
Seguro por PadrãoConecte com segurança usandocertificados X509 e TLS 1.2com Autenticação Mútua
Mensagens dos SensoresSuporte a protocolos padrãoMQTT, HTTP, WebSockets
Tópico/canalHierarquia para roteamento das mensagensControle total da árvore
Conteúdo (JSON)JSON customizado
Extraindo o Valor das Mensagens
• Filtrar mensagens usando um critério• Mover mensagens para outros tópicos• Mover mensagens para outros sistemas• Transformar o conteúdo das mensagens• Predizer mensages usando tendências• Reagir baseado nas mensagens
AWS IoT SQL – Referência
SELECT DATA FROM TOPIC WHERE FILTER
• Similar a ler uma tabela de um banco de dados• A origem padrão é um tópico MQTT
Exemplos:• FROM mqtt(‘meu/topico’)• FROM mqtt(‘meu/coringa/+/topico’)• FROM (‘meu/topico’)
Motor de Regras
• Funções• Manipulação de strings (suporte a expressões regulares)• Operações matemáticas• Funções auxiliares baseadas em contexto• Suporte a criptografia• UUID, timestamp, rand, etc.
• Executar ações em paralelo
novo: Funcionalidades do Motor de Regras
• Versionamento• 2016-10-08 – Versão original • 2016-03-23-beta – Versão beta lançada em uma
determinada data• beta – Última versão beta (mudanças com quebras!)• lts – Última versão estável, atualizada automaticamente
{
"sql": "expression",
"ruleDisabled": false,
"awsIotSqlVersion": "2015-03-23-beta",
"actions": [{
"republish": {
"topic": "my-mqtt-topic",
"roleArn": "arn:aws:iam::123456789012:role/my-iot-role"
}
}]}
Fluxo básico para usar predição
• Gerar dados• Use uma regra do AWS IoT para enviar dados para o S3• Construa o seu modelo no Amazon Machine Learning
usando o S3 como fonte de dados• Habilite as predições em tempo-real no Amazon ML • Use uma regra do AWS IoT para validar o valor predito
com o Amazon ML• Adicione outras ações
1. Dispositivo publica o estado atual
2. Persiste no repositório de dados JSON
3. Aplicativo solicita o estadoatual do dispositivo
4. Aplicativo solicita atualizaçãono estado
5. Device shadow sincronizao estado atualizado
6. Dispositivo publica o estado atual
7. Device shadow confirma a mudança do estado
AWS IoT Fluxo de uso do Device Shadow
AWS IoT Device Shadow: Simples e Poderoso
{"state" : {
“desired" : {“luzes": { "cor": “VERMELHO" },"motor" : "LIGADO"
},"reported" : {
“luzes" : { "cor": “VERDE" },„motor" : "LIGADO"
},"delta" : {
“luzes" : { "cor": "VERMELHO" }} },
"version" : 10}
Dispositivo
Reporta o estado atual para uma ou mais device shadowsObtém o estado desejado da shadow
Aplicação Móvel
Determina o estado desejado do dispositivoObtém o último estado reportado pelo dispositivoApaga a device shadow
Shadow
Shadow informa a diferença (delta), estado desejado (desired) e reportado (reported)incluindo o metadado e versão
Princípios de Segurança da AWS
Separação de Papéis
Pessoal diferente para cada função
Privilégio mínimo
Autenticação Mútua usando TLS
• Criar um CSR• Criar um certificado X.509 a partir do CSR• Ativar o certificado• Criar uma policy• Anexar a policy ao certificado
* Certificado precisa ser emitido pelo AWS IoT
novo: Traga o seu próprio Certificado
• Use os certificados emitidos pela sua própria AC• Aproveitar a Infraestrutura de emissão atual• Usar certificados que já estão embarcados• Acesso limitado a internet na linha de montagem/fábrica• Provisionamento simplificado de dispositivos
• 8 chamadas novas de API para suportar o gerenciamento dos certificados
Exemplo de Policy publish/subscribe
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/foo"
]
},
{
"Effect": "Deny",
"Action": [
”iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/bar"
]
Permite acesso a topic/foo
Nega acesso a topic/bar
AWS IoT policies
• Resultado (Effect)• Permitir (Allow) ou Negar (Deny)
• Ação (Action)• "iot:Publish" – publicar em um tópico MQTT• "iot:Subscribe" – inscrever em um tópico MQTT• "iot:UpdateThingShadow" – Atualizar uma thing shadow• "iot:GetThingShadow" – Obter uma thing shadow• "iot:DeleteThingShadow - Apagar uma thing shadow
• Recurso (Resource)• Cliente• ARN do tópico ou do filtro do tópico
Criando um relação de confiança com AWS IoT
P P
PRole
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": “iot.amazonaws.com”
},
"Action": "sts:AssumeRole"
}
]
}
Protegendo acesso dos usuários
• WebSockets suporta autenticaçãoSignature Version 4
• IAM roles e policies• Pool de Identidade do Amazon Cognito
• Acesso anônimo ao iot:Subscribe• Use o seu próprio padrão de autenticação no nível de
aplicação
Suporte ao SDK para Dispositivos
• Baseado em padrões abertos como Eclipse Paho• Embedded C• JavaScript• Arduíno Yún• Java• Python• iOS• Android
Resumo
• AWS IoT• novo Ciclo de Vida de Eventos• novo Funcionalidades do Motor de Regra
• Elasticsearch• Amazon ML como função de predição
• novo Traga o seu próprio certificado
Muito Obrigado!Angelo Carvalho | [email protected]