本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
安全隧道
使用该aws.greengrass.SecureTunneling
组件,您可以与位于受限防火墙后面的 Greengrass 核心设备建立安全的双向通信。
例如,假设您在防火墙后面有一台 Greengrass 核心设备,该设备禁止所有传入连接。安全隧道使用 MQTT 将访问令牌传输到设备,然后使用 WebSockets 通过防火墙与设备建立 SSH 连接。使用此 Amazon IoT 托管隧道,您可以打开设备所需的 SSH 连接。有关使用 Amazon IoT 安全隧道连接远程设备的更多信息,请参阅《开发人员指南》中的Amazon IoT 安全隧道。Amazon IoT
此组件订阅$aws/things/
主题上的 Amazon IoT Core MQTT 消息代理以接收安全隧道通知。greengrass-core-device
/tunnels/notify
版本
此组件有以下版本:
-
1.0.x
类型
此组件是一个通用组件 (aws.greengrass.generic
)。Greengrass 核心运行组件的生命周期脚本。
有关更多信息,请参阅 组件类型。
操作系统
此组件只能安装在 Linux 核心设备上。
架构:
-
armv71
-
Armv8 (AArch64)
-
x86_64
要求
此组件具有以下要求:
-
安全隧道组件至少有 32 MB 的可用磁盘空间。此要求不包括运行在同一设备上的 Greengrass 核心软件或其他组件。
-
安全隧道组件至少有 16 MB 的可用内存。此要求不包括运行在同一设备上的 Greengrass 核心软件或其他组件。有关更多信息,请参阅 使用JVM选项控制内存分配。
-
安全隧道组件版本 1.0.12 及更高版本需要 GNU C 库 (glibc) 版本 2.25 或更高版本以及 Linux 内核为 3.2 或更高版本。不支持超过长期支持期限的操作系统和库的版本。您应该使用具有长期支持的操作系统和库。
-
操作系统和 Java 运行时都必须安装为 64 位。
-
Python
3.5 或更高版本安装在 Greengrass 核心设备上,并已添加到 PATH 环境变量中。 -
libcrypto.so.1.1
安装在 Greengrass 核心设备上并添加到 PATH 环境变量中。 -
在 Greengrass 核心设备的端口 443 上打开出站流量。
-
启用对要用于与 Greengrass 核心设备通信的通信服务的支持。例如,要打开与设备的 SSH 连接,必须在该设备上打开 SSH。
端点和端口
除了基本操作所需的端点和端口外,此组件还必须能够对以下端点和端口执行出站请求。有关更多信息,请参阅 允许设备流量通过代理或防火墙。
Endpoint | 端口 | 必需 | 描述 |
---|---|---|---|
|
443 | 是 |
建立安全隧道。 |
依赖项
部署组件时, Amazon IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖项的要求才能成功部署该组件。本节列出了此组件已发布版本的依赖关系以及定义每个依赖项的组件版本的语义版本限制。您还可以在Amazon IoT Greengrass 控制台
有关组件依赖关系的更多信息,请参阅组件配方参考。
配置
此组件提供以下配置参数,您可以在部署该组件时对其进行自定义。
OS_DIST_INFO
-
(可选)核心设备的操作系统。默认情况下,该组件会尝试自动识别核心设备上运行的操作系统。如果组件无法使用默认值启动,请使用此值来指定操作系统。有关此组件支持的操作系统的列表,请参见设备要求。
该值可以是以下值之一:
auto
、ubuntu
、amzn2
、raspberrypi
。默认:
auto
accessControl
-
(可选)包含授权策略的对象,该策略允许组件订阅安全隧道通知主题。
注意
如果您的部署以事物组为目标,请勿修改此配置参数。如果您的部署以单个核心设备为目标,并且您想将其订阅限制为该设备的主题,请指定核心设备的事物名称。在设备授权策略的
resources
值中,将 MQTT 主题通配符替换为设备的事物名称。{ "aws.greengrass.ipc.mqttproxy": { "aws.iot.SecureTunneling:mqttproxy:1": { "policyDescription": "Access to tunnel notification pubsub topic", "operations": [ "aws.greengrass#SubscribeToIoTCore" ], "resources": [ "$aws/things/+/tunnels/notify" ] } } }
例 示例:配置合并更新
以下示例配置指定允许此组件在运行 Ubuntu 的名为MyGreengrassCore
的核心设备上打开安全隧道。
{ "OS_DIST_INFO": "ubuntu", "accessControl": { "aws.greengrass.ipc.mqttproxy": { "aws.iot.SecureTunneling:mqttproxy:1": { "policyDescription": "Access to tunnel notification pubsub topic", "operations": [ "aws.greengrass#SubscribeToIoTCore" ], "resources": [ "$aws/things/MyGreengrassCore/tunnels/notify" ] } } } }
本地日志文件
此组件使用以下日志文件。
/logs/aws.greengrass.SecureTunneling.log
/greengrass/v2
查看此组件的日志
-
在核心设备上运行以下命令以实时查看此组件的日志文件。
替换为 Amazon IoT Greengrass 根文件夹的路径。/greengrass/v2
sudo tail -f
/logs/aws.greengrass.SecureTunneling.log/greengrass/v2
许可证
此组件包括以下第三方软件/许可:
-
Amazon IoT 设备客户端
/Apache 许可证 2.0 -
Amazon IoT Device SDK for Java
/Apache 许可证 2.0 -
gson
/Apache 许可证 2.0 -
log4j
/Apache 许可证 2.0 -
slf4j
/Apache 许可证 2.0
使用量
要在设备上使用安全隧道组件,请执行以下操作:
-
将安全隧道组件部署到您的设备上。
-
打开Amazon IoT 控制台
。从左侧菜单中选择 “远程操作”,然后选择 “安全隧道”。 -
创建一条通往你的 Greengrass 设备的隧道。
-
下载源访问令牌。
-
使用带有源访问令牌的本地代理连接到您的目的地。有关更多信息,请参阅《Amazon IoT 开发人员指南》中的如何使用本地代理。
另请参阅
-
Amazon IoT 《开发人员指南》Amazon IoT 中的@@ 安全隧道
更改日志
下表描述了该组件的每个版本中的更改。
版本 |
更改 |
---|---|
1.0.19 |
警告如果您使用安全隧道本地代理作为隧道源客户端,则在将本地代理升级到版本 3.1.1 或更高版本之前,不要将组件更新到此版本。 |
1.0.18 |
Greengrass nucleus 版本 2.12.0 版本的版本已更新。 |
1.0.17 |
|
1.0.16 |
Greengrass nucleus 版本 2.11.0 版本的版本已更新。 |
2016-09-01 |
|
1.0.14 |
Greengrass nucleus 版本 2.10.0 版本的版本已更新。 |
1.0.13 |
|
1.0.12 |
|
2016-09-01 |
Greengrass nucleus 版本 2.9.0 版本的版本已更新。 |
2016-09-01 |
Greengrass nucleus 版本 2.8.0 版本的版本已更新。 |
1.0.9 |
Greengrass nucleus 版本 2.7.0 版本的版本已更新。 |
1.0.8 |
Greengrass nucleus 版本 2.6.0 版本的版本已更新。 |
1.0.7 |
|
1.0.6 |
此版本包含错误修复。 |
1.0.5 |
Greengrass nucleus 版本 2.5.0 版本的版本已更新。 |
1.0.4 |
Greengrass nucleus 版本 2.4.0 版本的版本已更新。 |
1.0.3 |
Greengrass nucleus 版本 2.3.0 版本的版本已更新。 |
1.0.2 |
Greengrass nucleus 版本 2.2.0 版本的版本已更新。 |
1.0.1 |
Greengrass nucleus 版本 2.1.0 版本的版本已更新。 |
1.0.0 |
初始版本。 |