摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到...

48
AWS 中国(宁夏)区域由西云数据运营 AWS 中国(北京)区域由光环新网运营 AWS 中国(宁夏)区域由西云数据运营 AWS 中国(北京)区域由光环新网运营 吴鹏程,AWS 解决方案架构师 摘朵云到边缘 绿草 हरीघास AWS IoT Greengrass边缘计算平台的功能以及 部署、安全最佳实践介绍

Transcript of 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到...

Page 1: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

吴鹏程,AWS 解决方案架构师

摘朵云到边缘

绿草

हरीघासAWS IoT Greengrass边缘计算平台的功能以及

部署、安全最佳实践介绍

Page 2: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

AWS IoT Greengrass 配置方法

AWS IoT Greengrass 安全最佳实践

总结

AWS IoT 和 AWS IoT Greengrass 简介

AWS IoT Greengrass 上的 lambda 函数

Page 3: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

AWS IoT 和 Greengrass 简介

Page 4: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

设备软件

AWS IoT 架构

控制服务

数据服务

IoT Greengrass

Amazon FreeRTOS AWS IoT Device SDK

IoT Core

IoT Device Management IoT Device Defender

IoT Things GraphA

WS

Io

T

De

vic

e T

est

er

IoT Analytics

IoT SiteWise IoT Events

2

1

Page 5: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

同步数据和状态

安全 Over the Air 更新

连接器

离线操作设备,当在线时同步相应的数据和

状态

本地操作

利用AWS Lambda简化设备编程

在云端和设备之间双向进行认证和授权

更容易的更新AWS IoT

Greengrass Core软件

机器学习推理

进行本地机器学习推理

本地资源访问

AWS Lambda可以使用和访问设备的本地

资源

利用连接,拓展边缘设备到外部服务

本地消息和触发器

使得设备之间在没有云端连接的情况下互

相通讯

密钥管理

将密钥部署到边缘设备

AWS IoT Greengrass 边缘计算平台

Page 6: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

物联网架构

AWS IoT Core

网关

设备

AWS IoT Greengrass

物感知 & 行动

云存储 & 计算

智能洞察力 & 逻辑 → 行动

Page 7: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

IoT Greengrass 组件

Page 8: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

将AWS IoT基于 MQTT的消息发布/订阅机制扩展到本地的的边缘设备

允许把在云端编写的AWS Lambda函数部署到边缘设备的 AWS IoT GreengrassCore,从而响应本地事件,并触发操作

支持通过IoT Greengrass Core和其他使用AWS IoT Device SDK的设备在局域网内进行操作命令及控制等。

例如:在智能大棚中,AWS IoT GreengrassCore可以检测土壤墒情,并触发相应的动作或操作,控制水的喷洒。这些都不要连接到云端

本地消息和触发使得设备之间在没有连接云端情况下可以在本地网络内进行通信

Page 9: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

在云端编写基于事件驱动的AWS函数,并将其部署到本地设备

AWS Lambda函数支持 Python 2.7, Node.js 或者 Java

利用消息或者更新的影子触发AWS Lambda函数

离线的动作或触发机制。例如:智能大棚中,根据土壤的墒情,触发相应的控制,控制喷洒水量的多少

本地操作通过本地的AWS Lambda函数简化嵌入式的软件开发

Page 10: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

可以为设备定义基于JSON格式的影子状态,该改状态可以表达任何业务逻辑行为,例如一个风力轮机、风力发电场或者一个资源网格等

允许设备影子的状态在本地设备和云端进行状态同步

运行的AWS IoT Greengrass Core上的Lambda函数可以通过MQTT消息进行影子状态的更新

例如, AWS IoT Greengrass Core可以持续更新收割机的影子,已反映连续的收割产量,同时将在当天结束时,数据的快照副本可以同步到云端。

数据和状态同步在网络连接间歇期间操作设备,当网络连接恢复时和云端同步数据

Page 11: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

不论是本地还是云端都支持基于TLS的双向认证

设备证书可以关联到云端的基于AWS签名(版本4)的凭证

为存储在本地AWS Lambda函数使用的加密密钥及存储设备的私钥建立基于硬件的安全信任域

安全性本地和云端通讯的认证、数据的加密

Page 12: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

允许Lambda 函数访问设备上的本地资源

可以访问GPIO,从而处理传感器及制动器的数据

Lambda函数可以利用操作系统中的本地文件系统

Lambda函数可以使用GPU,从而为机器学习进行硬件加速

本地资源访问AWS Lambda 函数可以访问和使用设备的本地资源

GPU

Page 13: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

在云端利用Amazon SageMaker或者EC2实例训练模型

结合 Apache MXNet、 TensorFlow框架进行机器学习推理

将训练模型部署到边缘设备,同时也可把数据反送回云端,提高模型的精度

集成 Amazon SageMaker从而减少100倍的模型运行时的占用空间,提高推理性能2倍

机器学习推理本地执行机器学习推理,而没有数据传输的成本以及增加的延迟

Page 14: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

提供预安装的功能模块,从而更容易的和AWS 服务进行对接,例如:AWS Kinesis Firehose/CloudWatch/SNS

提供和Twiilio/Modbus/ServiceNow 等其他SaaS应用的预制集成

利用连接器作为程序中的一部分和其他复杂的应用进行集成

AWS IoT Greengrass 连接器可以快速的将边缘设备连接到第三方服务、本地软件、AWS 服务

Page 15: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

存储、访问、轮换、管理以下内容:设备证书、密钥、配置信息、连接节点

在云端安全管理密钥,安全的部署到边缘设备

通过云端的 AWS Secret Manager 服务管理设备上的密钥

AWS IoT Greengrass

密钥管理将密钥部署到边缘设备

Page 16: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

远程更新AWS IoT Greengrass Core设备的软件、安全补丁、进行bug修复、更新功能特征

一次性批量更新多个AWS IoT GreengrassCore设备

更新具有失效保护。更新过程中的任何中断、变更都会触发自动的恢复

从AWS IoT管理控制页面可以跟踪更新的状态

OTA更新更容易的更新 AWS IoT Greengrass设备并进行安全补丁、bug修复、增加新的功能

Page 17: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

IoT Greengrass 配置方法

Page 18: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

更多细节要求参见:

https://docs.aws.amazon.com/greengrass/latest/developerguide/what-is-

gg.html

硬件:•ARMv7l, ARMv8, x86_64

•最小 128 MB RAM, 1GHz CPU

软件:•Linux, Raspbian Stretch, Amazon Linux,

Ubuntu, Docker(包括Windows和Linux) 或者Snapcraft

•Linux kernel version 4.4 以上.

•Glibc library version 2.14以上.

•For Lambda: Python 2.7, Python 3.7,

NodeJS 6.10, NodeJS 8.10,Java 8+

•激活 hardlink 和 softlink 保护•激活并挂载 memory cgroup.

Page 19: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Linux:

• 创建用户和组• 激活 hardlink和

softlink 保护• 挂载 Linux control

groups (cgroups)

• 检查配置(可选)

容器:

• 登录 AWS ECR 容器仓库

• 拉取 Greengrass 容器镜像

• 设置 IPv4 网络转发

配置 Greengrass 云服务

Greengrass core

设备环境设置

• 快速创建或者自定义方式创建

• 批量创建Greengrass 组,

Greengrass core, key,

certificate 以及安全策略等.

• 下载 key, certificate, 配置文件到 Greengrass

core设备上• 下载 Greengrass软件包到设备上(如果你使用容器方式,则无需下载Greengrass core 软件)

Page 20: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Linux:

• 解压 Greengrass 软件以及证书到设备

• 获取并保存 Amazon

Root CA

• 启动 Greengrass 进程• 安装 MXNet 机器学习框架(可选)

容器:

• 准备证书,配置文件及秘钥

• 启动 Greengrass Docker

container

为 Greengrass创建Lambda 函数

运行Greengrass

Core 软件

• 下载AWS IoT

Greengrass Core SDK

• 创建 Lambda 函数并编写代码

• 将代码以及Greengrass

Core SDK一起Zip打包并上传到 AWS Lambda

service

• 发布 Lambda函数

Page 21: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

配置 Lambda 参数

添加 Lambda 到Greengrass group

• 以 ggc_user/ggc_group或其他用户

运行• 内存限制• 容器化

• Greengrass container

• No container

• 超时• Lambda 生命周期

• 长期运行 Lambda 函数• 按需 Lambda 函数

• 对/sys 目录的读权限• Json或二进制输入• 环境变量

注意:在Docker容器中运行AWS IoT Greengrass时,所有Lambda函数都必须运行在没有容器化的情况下。在此步骤中,将组的默认容器化设置为“No container”

Page 22: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

• 本地资源• 文件系统卷或者物理设备• Linux 组的操作系统组权限• 只读或者可读写

• 机器学习模型• 存储在S3的模型• 在 AWS SageMaker上训练好的模型

• 秘钥• 秘钥的名称必须以 ”greengrass-”开头

• 密码, API keys, OAuth tokens,

或其他访问凭据

配置资源

Page 23: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

• 配置订阅的源和目标• 服务

• IOT Cloud

• 本地设备影子• 设备• Lambdas

• 连接器• CloudWatch Metrics

• Device Defender

• Image Classification

• Kinesis Firehose

• SNS

• ……

部署到AWS IoT

Greengrass Core 设备配置订阅

Page 24: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营授权给设备的证书发起discover Greengrass core操作 Discover API 返回的结果

HTTP GET https://greengrass-ats.iot.region.amazonaws.com:443/greengrass/discover/thing/thing-name

当设备首次联机时,它可以连接到 AWS IoT Greengrass

云服务并使用“发现” API 来查找以下内容:• 设备所属的组。• 组中的 AWS IoT Greengrass Core的 IP 地址和端口。• 组的根 CA 证书,该证书可用于对 AWS IoT

Greengrass Core设备进行身份验证

{"Version": "2012-10-17","Statement": [{

"Effect": "Allow","Action": "greengrass:Discover","Resource": ["arn:aws:iot:us-west-

2:123456789012:thing/MyThingName"]}]

}

{

"GGGroups": [

{

"GGGroupId": "gg-group-01-id",

"Cores": [

{

"thingArn": "core-01-thing-arn",

"Connectivity": [

{

"id": "core-01-connection-id",

“hostAddress”: ”192.168.0.100",

"portNumber": 8443,

"metadata": "core-01-description"

}

]

}

],

"CAs": [

"-----BEGIN CERTIFICATE-----cert-contents-----

END CERTIFICATE-----"

]

}

]

}

Page 25: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

设备使用Greengrass

Discovery Service查找其

Greengrass core设备的IP

地址。下载组的 root CA证

书并连接

IOT设备使用其设备证书,

私钥和AWS IoT root CA

连接到Greengrass云服务。

Greengrass Core设备使用

其设备证书,私钥和AWS

IoT root CA证书连接到

Greengrass云服务

Greengrass core设备从

Greengrass服务下载组

成员信息

部署完成后,设备证书管理

器(DCM)将处理AWS IoT

GreengrassCore设备的证

书管理

设备证书和客户端ID传递给

Greengrass core。如果客户

端ID匹配且证书有效,则建

立连接。否则,终止。

12

34

56

Page 26: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Amazon CloudWatch

CLI on Greengrass device

Page 27: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Greengrass 上的 Lambda 函数

Page 28: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

在云中编写事件驱动的AWS Lambda函数并将其部署到设备

运行用C,C ++,Python, Node.js或Java编写的AWS Lambda函数

使用消息传递和影子更新调用AWS Lambda函数

离线操作和触发器功能,比如,在检测到土壤中的水分含量过低时,自动触发控喷水装置制在智能温室内喷洒更多水

Lambda @ Greengrass

使用本地AWS Lambda函数简化嵌入式软件开发

Page 29: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

云端的Lambda vs Greengrass 上的Lambda

Lambda @GreengrassLambda @CloudDeploy to

不支持$ LATEST的别名按需或长时间运行使用Greengrass组角色可以在容器或无容器中运行可配置为访问本地资源仅发送QoS = 0的MQTT消息免费运行

默认别名是$ LATEST

最长执行时间为15分钟使用Lambda角色在容器环境中运行只能访问\ tmp卷支持QoS = 0且QoS = 1的MQTT消息基于资源使用和运行时间计费

Page 30: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

配置Lambda for Greengrass ——SDKs

AWS SDK

• IoT Device SDK

可帮助设备连接到AWS IoT或AWS IoT

Greengrass服务

• 支持各种语言• 只有C ++和

Python集成Greengrass发现功能

• 使用AWS SDK

构建与任何AWS服务交互的应用程序

• 支持各种语言

IoT Device SDKGreengrass

Core SDK

Greengrass Machine

Learning SDK

• Greengrass

Core SDK使Lambda函数能够与GreengrassCor

e进行交互• C,C ++,

Python,NodeJS,Java

• Greengrass

Machine

Learning SDK

使Lambda函数能够使用机器学习模型

• 只有Python

Page 31: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

修改 Cloud-Based Lambda 函数为边缘端运行

import boto3 client = boto3.client('iot-data') response = client.publish( topic = 'some/topic', qos = 0, payload = 'Some payload'.encode() )

import greengrasssdk client = greengrasssdk.client('iot-data') response = client.publish( topic = 'some/topic', qos = 0, payload = 'Some payload'.encode() )

Page 32: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

配置 Lambda for Greengrass ——发布订阅

AWS IoT

组里的其他Lambda

组里的设备 本地设备影子

组里的连接器

主题

Page 33: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

配置 Lambda for Greengrass ——Lambda 可执行文件

在 Greengrass core上面运行二进制代码的 Lambda.

• 在设备上运行设备的某些特定功能,使用编译完的二进制代码占用空间也会较小• 写可执行文件的代码时需要调用gg_global_init初始化Greengrass内部全局变量• 写可执行文件的代码时需要调用gg_runtime_start以注册函数 Handler到Greengrass Lambda运行时

aws lambda create-function--region aws-region--function-name function-name--handler executable-name--role role-arn--zip-file fileb://file-name.zip--runtime arn:aws:greengrass:::runtime/function/executable

aws lambda publish-version --function-name function-name--region aws-region

aws lambda create-alias--function-name function-name--name alias-name--function-version version-number--region aws-region

将 Lambda 可执行文件添加到一个 Greengrass 组

在组特定的设置中将其配置为接受二进制输入数据

然后部署该组

Page 34: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Greengrass 安全最佳实践

Page 35: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

A - Greengrass service role

允许AWS IoT Greengrass访问您的AWS IoT,Lambda和其他AWS资源B - Core device certificate

用于验证AWS IoT Greengrass core的X.509证书.

C - Device certificate

用于验证AWS IoT设备的X.509证书.

D - Group role

当从Lambda函数或连接器调用AWS服务时,AWS IoT Greengrass所使用的IAM角色.

E - Group CA

AWS IoT Greengrass设备使用的root CA证书,用于在TLS相互身份验证期间验证AWS IoT Greengrass core设备提供的证书.

Page 36: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

/greengrass/groups/GroupId/role

• Group Role 是授权用户定义的Lambda函数和连接器访问AWS服务,例如DynamoDB。

• 最小权限原则可以限制Greengrass的权限,以避免任何潜在的风险。

Page 37: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

• 如果Greengrass设备的IP地址频繁更改,或者它在NAT设备后面运行,请使用“手动管理连接”。

• 否则,请选择自动检测

Page 38: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

• 默认情况下,证书将有效期为7天。 最长可达30天。如果您需要30天+,请联系AWS Support(最长可达到23年)。

• Greengrass core设备必须能够定期访问Greengrass云服务以轮换证书。

• Greengrass core设备重新启动MQTT服务以使用新证书。这导致所有设备重新连接。

• 如果证书已过期,则拒绝任何连接到Greengrass core

设备的新建连接。现有连接不受影响。• 证书过期后,任何验证证书的尝试都将失败。 设备上

运行的代码必须能够检测到这一故障并终止连接。

更新申请

重启MQTT 服务

过期

IoT Devices

Greengrass

AWS IoT service

Page 39: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

• 默认情况下,证书将在7天后到期。最长可达30天。• 如果您想要设置30天以上,请联系AWS Support。最长可以设置长达23

年的时间。

Page 40: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

• 立即轮换 Group CA 可以防止 Greengrass Core设备上的Group CA被破解导致的潜在风险

• Group CA 立即轮换的操作会立刻生效,这个会导致组里面的所有设备重新连接,并且去 AWS IOT 服务上重新获取新的 Group

CA

Page 41: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

aws iot update-certificate --certificate-id xxxx --new-status REVOKED

Page 42: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

• 使用最新的Greengrass软件,安全更新,错误修复和新功能

• 允许一次批量更新许多AWS GreengrassCore设备

• 更新是安全的:如果不成功会自动回滚到上一版本

• 可以从AWS IoT控制台跟踪更新状态

Page 43: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

利用Greengrass 硬件安全芯片增强安全

存储在文件系统上的私钥

PK

CS

#1

1 A

PI

Inte

rfa

ce

2.更新AWS IoT Greengrass

配置以指向该私钥,而不是文件系统上的私钥

3.通过更新配置与AWS IoT

Greengrass Secrets

Manager集成

1.按照供应商说明在您的安全芯片上生成私钥

Page 44: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

AWS IoT Greengrass 硬件安全芯片合作伙伴

Page 45: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

最小权限的Group Role

必要时撤销设备证书

经常执行“发现”操作

最小化证书的生命周期

利用硬件安全芯片

OTA 升级确保安全

立即轮换Group CA

Page 46: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

总结

• AWS IoT Greengrass 能够将云端的 IoT 能力带到边缘计算上

• AWS IoT Greengrass 可以运行在多种平台和容器环境上

• 将 Lambda 从 Cloud 迁移到 Greengrass 很容易,您可以进一步优化它

• 始终将安全性作为边缘管理的首要任务

Page 47: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

Q&A

Page 48: 摘朵云到边缘 - Amazon Simple Storage Service (S3) · 配置Lambda 参 数 添加Lambda 到 Greengrass group •以ggc_user/ggc_group 或其他用户 运行 •内存限制 •容器化

AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营

我们希望您喜欢今天的内容!也请帮助我们完成反馈问卷。

欲获取关于 AWS 的更多信息和技术内容,可以通过以下方式找到我们:

微信公众号:AWSChina

新浪微博:https://www.weibo.com/amazonaws/

领英:https://www.linkedin.com/company/aws-china/

知乎:https://www.zhihu.com/org/aws-54/activities/

视频中心:http://aws.amazon.bokecc.com/

更多线上技术活动:https://aws.amazon.com/cn/about-aws/events/webinar/

感谢参加 AWS 在线研讨会