Introduçao à Internet das Coisas com AWS IoT

Preview:

Citation preview

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

David Reis | Arquiteto de Soluções

Eduardo Horai | Gerente Sr. Arquitetura de Soluções

02-Junho-2016

Introdução à Internet das Coisas

com AWS IoT

A “Internet das Coisas”

(plural)

Coisas NÃO são recursos estáticos

O cliente tem várias identidades

A casa é a empresa de alguém

Demo

http://bit.ly/iotawssp

AWS IoT

Ruído de Roteamento

Device Gateway

Publish / Subscribe

Suporte a Protocolos Padrões

MQTT, HTTP, WebSockets

Conexões de Longa Duração

Receber sinais da nuvem

Seguro por Padrão

Conecte com segurança usando

certificados X509 e TLS 1.2

com Autenticação Mútua

Mensagens dos Sensores

Suporte a protocolos padrão

MQTT, HTTP, WebSockets

Tópico/canal

Hierarquia para roteamento das mensagens

Controle total da árvore

Conteúdo (JSON)

JSON customizado

Encontrando os Sinais

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

Motor de Regras (Rules Engine)

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 auxiliaries 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"

}

}]}

novo: Integração com Elasticsearch

Demo

novo: Ciclo de Vida de Eventos

novo: Função de Predição

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

Blog de Manutenção Preditiva:

http://bit.ly/aws-iot-aml-blog

AWS IoT Device Shadow

AWS IoT Device Shadow

1. Dispositivo publica o estado atual

2. Persiste no repositório de dados JSON

3. Aplicativo solicita o estado

atual do dispositivo

4. Aplicativo solicita atualização

no estado

5. Device shadow sincroniza

o 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

shadows

Obtém o estado desejado da shadow

Aplicação Móvel

Determina o estado desejado do dispositivo

Obtém o último estado reportado pelo dispositivo

Apaga a device shadow

Shadow

Shadow informa a diferença (delta),

estado desejado (desired) e reportado (reported)

incluindo o metadado e versão

Demo

http://bit.ly/iotawssp

Segurança

Princípios de Segurança da AWS

Separação de Papéis

Pessoal diferente para cada função

Privilégio mínimo

Segurança nos Dispositivos

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

Protegendo o acesso aos recursos da AWS

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 aos recursos da AWS

Protegendo acesso dos usuários

• WebSockets suporta autenticação

Signature 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

SDKs para Dispositivos

Suporte ao SDK para Dispositivos

• Baseado em padrões abertos como Eclipse Paho

• C

• Arduino (Yun)

• iOS (Swift)

• Android

• Suporte a WebSocket

• NodeJS

• JS SDK para sites estáticos (WebSockets)

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!David Reis | dreis@amazon.com

Eduardo Horai | ehorai@amazon.com