如何使用 Amazon Systems Manager 集中管理 Amazon IoT Greengrass 设备

news2024/11/26 2:28:14

对于边缘设备管理员来说,远程管理大量不同的系统和应用程序会是一项富有挑战性的任务。Amazon IoT Greengrass 可帮助这些系统管理员管理其边缘设备应用程序堆栈。不过,这些设备上的系统软件必须通过与其大型 IT 企业的运营策略一致的运营策略来单独更新和维护。此外,客户必须构建或集成自定义工具,以确保边缘设备可以与 Amazon Elastic Compute Cloud(Amazon EC2)和本地实例一起通过一组一致的策略来管理。

 

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

我们在 re:Invent 2021 上发布了 Amazon Systems Manager 与 Amazon IOT Greengrass 之间的集成。此版本简化了对边缘设备的系统软件的管理和维护。与 Amazon IoT Greengrass 客户端软件结合使用时,Amazon Systems Manager 可让边缘设备管理员远程访问和安全地管理他们拥有的许多设备 – 从操作系统修补到部署应用程序。管理员几乎可以利用 Systems Manager 服务的所有操作和节点管理功能。

本博文介绍如何设置以将 Amazon IoT Greengrass 设备与 Systems Manager 集成。其中,我们将演示如何使用会话管理器打开边缘设备的远程登录、使用 Patch Manager 修补它们以及通过 Run Command 运行自动化脚本。

安装 Amazon IoT Greengrass Core 软件

首先,我们必须在边缘设备上安装 Greengrass Core 软件。提供了多种选项来安装 Amazon IoT 软件,包括:

  • 自动预置
  • 手动预置
  • 实例集预置
  • 自定义预置

参阅 Amazon IoT Greengrass 文档,了解这些预置方法之间的差异。

在本博文中,我们使用自动预置方法在边缘设备上安装 Greengrass Core 软件。在此方法中,安装程序将预置所需的外围设备,例如,注册 Amazon IoT 事物并创建 Amazon IoT 事物组、Amazon Identity and Access Management(IAM)角色以及 Amazon IoT 角色别名。这样便能更快地完成设置。自动预置适用于 Linux 和 Windows 设备。在以下步骤中,我们使用的是 Ubuntu Linux 设备。可在 Amazon IoT Greengrass 文档中找到有关运行 Amazon IoT Greengrass Core 软件的设备要求。

成功安装 Greengrass Core 软件后,您应在 Amazon IoT Greengrass 控制台中看到状态为 Healthy(正常)的 Core 设备。如果安装失败或设备未处于 Healthy(正常)状态,请参阅故障排除指南

image.png

图 1:处于 Healthy(正常)状态的边缘设备在 Amazon IoT Greengrass 控制台的 Greengrass Core 设备下可见。

部署 Systems Manager 代理

现在,边缘设备正在与 Amazon IoT Greengrass 进行通信,我们可以将软件组件部署到该设备。您还可以使用 Amazon IoT Greengrass 将组件部署到一组设备。部署将定义要应用于设备的现有软件的组件及其配置,并且部署是连续的。在创建部署时,Amazon IoT Greengrass 会将部署推出到联机目标设备。如果目标设备未联机,它将在下次连接到 Amazon IoT Greengrass 时接收部署。

Systems Manager 代理(SSM 代理)将通过 Greengrass 作为组件部署,从而使 Systems Manager 服务能够更新、管理和配置 Greengrass Core 设备。该代理在 Amazon Cloud 中处理和运行来自 Systems Manager 服务的请求。之后,该代理将状态和运行时信息发送回 Systems Manager 服务。

按照安装 Systems Manager 代理文档中的步骤操作,完成 Systems Manager 设置步骤并部署 Systems Manager 代理组件。此过程包含四个阶段,总结如下:

  1. 完成一般 Systems Manager 设置步骤。
  2. 为 Systems Manager 创建 IAM 服务角色。
  3. 向令牌交换角色添加权限。
  4. 部署 Systems Manager 代理组件。

部署过程可能需要几分钟才能完成。

部署 Systems Manager 组件后,导航到 Amazon IoT Greengrass 控制台,选择 Core 设备,然后选择您的设备。在 Core 设备的详细信息页面上,找到链接到 SSM 控制台的 Systems Manager 实例属性。

image.png

图 2:边缘设备现在是托管式节点,它显示在 Systems Manager 控制台中的实例集管理器下方。

通过 Greengrass 注册到 Systems Manager 的边缘设备将具有以“mi-”开头的节点 ID。要使用 Systems Manager 及其功能管理设备,给定节点的 SSM Agent ping status(SSM 代理 ping 状态)必须为 Online(联机)。您可以通过选择 Node ID(节点 ID)来验证节点的“SSM Agent ping status”(SSM 代理 ping 状态)。

image.png

图 3:显示托管式节点详细信息的 Node overview(节点概览)页面。

Systems Manager 将边缘设备视为托管式节点。现在,您可以访问托管式节点、执行修补和收集监视数据,并执行其他任务。

1.在边缘设备上打开终端

在 Node overview(节点概览)页面上选择** Node actions**(节点操作)下拉菜单,然后选择 Start terminal session(启动终端会话)。此操作将通过 Systems Manager 会话管理器在边缘设备上启动终端会话。

注意:会话管理器需要通过高级实例套餐以交互方式访问边缘设备,因为它们已作为混合实例注册到 Systems Manager。此外,它还有其他定价,可以在 Systems Manager 定价中进行查看。按照 Systems Manager 文档中的步骤操作,从控制台启用高级实例套餐。

image.png

图 4:浏览器中为托管式节点打开的交互式会话窗口。

会话在客户端(您)和远程托管式节点之间使用安全的双向通信通道,从而流式传输命令的输入和输出。客户端和托管式节点之间的流量使用 TLS 1.2 进行加密,连接创建请求使用 Sigv4 进行签名。这种双向通信允许交互式 bash 和 PowerShell 访问托管式节点。

此外,使用 Amazon Key Management Service(Amazon KMS)在默认 TLS 加密的基础上对数据进行深度加密。此外,通过与众多 Amazon 服务(例如 Amazon Simple Storage Service(Amazon S3)、Amazon CloudTrail 和 Amazon CloudWatch Logs)集成,我们为在 Amazon 账户中记录和审核会话历史记录提供了多种选择。一种选择是,在会话中配置首选项,这些首选项是可自定义的,允许在会话启动时定义 shell 首选项、环境变量、工作目录、运行的多个命令等。

2. 修补边缘设备

Patch Manager 是 Systems Manager 的一项功能,它为每个受支持的操作系统提供预定义的补丁基准,这些基准通常批准与安全性相关的补丁。使用当前配置的这些基准(我们无法对它们进行自定义)或创建自定义补丁基准。利用自定义补丁基准,可以更好地控制为环境批准或拒绝的补丁。在本博文中,我们将使用预定义的补丁基准。有关更多信息,请参阅预定义和自定义补丁基准文档。

要修补边缘设备,请执行以下操作:

  1. 打开托管式节点的 Node overview(节点概览)页面。
  2. 从 Node actions(节点操作)下拉菜单中,选择 Patch node(补丁节点)。我们将看到用于修补边缘设备的 Amazon Systems Manager Patch Manager 页面。通读页面上提供的选项,该页面显示了修补的基本配置。默认情况下,修补操作为 Scan(扫描),它仅扫描缺失的补丁,而不会安装它们。
  3. 保留所有默认设置,滚动到页面的底部,然后选择 Patch now(立即修补)。

image.png

图 5:已选中默认选项的 Patch now(立即修补)窗口。

  1. 在下一页中,我们将看到修补执行摘要。选择 Execution ID(执行 ID)超链接,后跟页面上的 Output(输出),之后,查看扫描操作的详细信息和结果。

输出页面包含三个步骤。在步骤名称中选择与边缘设备上运行的操作系统对应的步骤。例如,如果它运行的是 Linux,请展开步骤 PatchLinux 的输出和错误。请注意,边缘设备必须能够访问其各自的存储库才能提取补丁。

image.png

图 6:Association Execution Summary(关联执行摘要)窗口,其中显示扫描模式下的修补操作的详细信息。

image.png

图 7:扫描操作的输出显示了托管式节点的可用补丁的摘要。

有关更多信息,请访问 Patch Manager 工作原理文档。

由于这些边缘设备具有间歇性连接且技术规格有限,因此,完成安装的时间可能会有所不同。Patch Manager 使用 Run Command(我们将在下一节中介绍的 Systems Manager 的另一项功能)在托管式节点上执行修补操作。

3. 远程将命令发送到边缘设备

使用 Run Command(Systems Manager 的一项功能)大规模配置托管式节点,而无需登录它们。我们通过本博文中的 Run Command 收集边缘设备上运行的进程。返回 Node overview(节点概览)页面,从 Node actions(节点操作)下拉菜单中选择 Execute run command(执行运行命令)。利用此方法,用户可以进入 Systems Manager Run Command 页面。您会看到可用的预配置命令文档的列表。搜索 Amazon-RunShellScript,并选择该文档。我们的边缘设备在 Ubuntu 上运行,因此,我们将发送 ps aux 命令来运行进程。在 Command parameters(命令参数)下的 Commands(命令)文本框中,键入 ps aux。

image.png

图 8:Run a Command(运行命令)窗口,其中选定了 Amazon-RunShellScript 文档并提供了 Shell 命令。

向下滚动到目标。我们应看到我们的节点已选中。在 Output options(输出选项)下,取消选中 Enable an S3 bucket(启用 S3 存储桶)。对于生产用途,建议将所有命令输出写入 Amazon S3 存储桶以进行审计。在本博文中,我们只进行测试以查看 Run(运行)命令是否成功。我们还建议在生产使用中“启用 Cloudwatch Logs”以进行其他审计。

选择 Run(运行)。这会将您转至一个显示 Run(运行)命令结果的页面。选择 Instance ID(实例 ID)旁边的单选按钮,然后选择 View output(查看输出)以查看该命令在目标 IoT 设备上的输出。此操作会将我们转至其他页面。选定输出将向我们显示发送到边缘设备的“ps aux”命令的结果。

image.png

图 9:通过 Run Command 运行的 shell 命令的输出。

在托管式节点上收集正在运行的进程的另一种方法是使用 Systems Manager 实例集管理器。在 re:Invent 2021 上发布了一项新功能,该功能为客户提供了基于控制台的轻松体验,以查看和管理其实例上的进程。客户可以查看深入的详细信息,例如每个活动进程的进程名称、进程详细信息和利用率指标。他们可以按名称查询进程,并根据任何进程参数快速对列进行排序。此外,您可以在控制台中终止不需要的进程或启动新进程。

实例集管理器利用会话管理器功能来管理托管式节点上的进程。此外,它要求在会话管理器首选项中启用 Amazon KMS 加密。有关更新会话首选项的步骤,请访问该文档。记下我们在上一步中选择的 Amazon KMS 密钥,然后在 Amazon KMS 控制台中打开此密钥。

在本博文的前面部分中,您已创建并部署本应创建 IAM 服务角色的 SSM 代理组件。假设已遵循 Amazon IoT Greengrass 文档来部署 SSM 代理。在这种情况下,IAM 服务角色的名称应为 SSMServiceRole。您需要按照 Amazon KMS 文档中的步骤操作来更新加密密钥,以将 SSMServiceRole 添加为密钥用户之一。

如上面的第 2 节所述,在 Systems Manager 控制台中打开我们的托管式节点以了解其工作原理。在左侧列的 Node overview(节点概览)下,选择 Processes(进程)。

image.png

图 10:节点详细信息页面,其中显示托管式节点的进程和资源使用信息。

由于 IoT Greengrass Core 软件和 Systems Manager 代理可以控制数千台远程设备,因此遵循 Amazon Well-Architected 的最低权限安全最佳实践是至关重要的。最低权限是仅授予完成任务所需的权限的原则。使用自动预置设置的 Amazon 托管式策略是查看通常与特定的服务或工作职能关联的操作的良好起点。不过,它们可能不符合公司的合规性标准或特定的使用案例。

有关编写最低权限 IAM 策略的帮助,请参阅本博文。

清理

如果您不再想使用 Systems Manager 管理您的边缘设备,请注销该设备并从中卸载 Systems Manager 代理。按照卸载 Systems Manager 代理文档中的步骤操作。同样,您可以卸载 Greengrass Core 软件以将其从边缘设备中删除。在卸载 Amazon IoT Greengrass Core 软件文档中查找有关停止、禁用和删除 Greengrass 服务的说明。

结论

本博文演示了如何在边缘设备上安装 Systems Manager 代理作为 Amazon IoT Greengrass 组件,以及如何利用各种 Systems Manager 功能集中管理边缘设备以及 Amazon EC2 和本地节点。首先,我们说明了如何在边缘设备上安装 Amazon IoT Greengrass Core 软件,以及如何部署 SSM 代理组件,然后演练了三个设备管理使用案例。

这些使用案例包括:

  • 获得对边缘设备的交互式 Shell 访问权限,同时改善安全和审计状况、集中访问控制和限制入站访问。使用 Amazon 管理控制台、Amazon 命令行界面(Amazon CLI)或某个受支持的 Amazon 开发工具包来启动会话。有关更多信息,请参阅控制台、CLI 和开发工具包对会话管理器功能的访问。
  • 通过精细控制能力,对可安装补丁的边缘设备的操作系统进行修补。可使用明确定义的维护时段跨设备实例集进行自动修补,在此期间,发生中断操作是可以接受的。有关更多信息,请访问使用维护时段修补计划。
  • 以可控方式在边缘设备上执行远程脚本,从而实现大规模安全管理。使用 Run Command 安装或引导应用程序、跟踪清单、应用软件更新或修改系统设置。此外,可以使用托管式节点上的标记在单个 Run Command 中定位数千台边缘设备。有关 Run Command 的更多信息,请参阅 Amazon Systems Manager Run Command 文档。

作者:

image.png

Pal Patel

Pal Patel 是一名云基础设施架构师,在与 Amazon 客户合作并为他们提供支持方面拥有 5 年以上的经验。她是 SSM 爱好者,对 SSM 自动化充满热情。工作之余,她乐于学习素描人脸,爱好阅读(她目前最喜欢的是《The Codebreaker》),也是 KPOP 音乐(A.R.M.Y)的狂热听众。

image.png

Bryan Henderson

Bryan Henderson 是伊利诺斯州芝加哥的 Amazon 高级解决方案架构师。他热衷于帮助客户在 Amazon 上构建解决方案来解决他们的问题。工作之余,他喜欢跑步、去瑞格利球场运动,以及与妻子和两个女儿共度时光。

文章来源:https://dev.amazoncloud.cn/column/article/630a3da48a1013112795045e?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/764848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件共享服务器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、FTP连接类型 三、端口 四、工作模式 五、安装配置 1、 服务名 2、主配置文件 3、 用户控制文件 4、 用户验证类型 5、 安装 6、 匿名用户验证 7、本…

python操作Elasticsearch数据库

Elasticsearch(ES),ES是一个开源的高扩展的分布式全站搜索引擎,是整个Elastic Stack技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。 安装好ES之…

go mod 设置国内源 windows 环境 win10

启用 go module 功能 go env -w GO111MODULEon 配置 goproxy 变量 go env -w GOPROXYhttps://goproxy.cn,direct 下载包就行了,速度飞快 go mod tidy 检测 goproxy 是否配置好 运行 go env | findstr goproxy 查看 goproxy Go module 从 Go v1.12 版本开始存在&a…

springboot3+vue3 前后端分离项目模板

更好的阅读体验 \color{red}{更好的阅读体验} 更好的阅读体验 项目地址 功能简介-视频演示 功能概要 支持登录和注册功能。支持密码找回和邮箱验证。支持“记住我”功能。包含完整的上述功能的基础页面。 登录功能 支持“用户名/密码”登录。登录可选“记住我”,勾…

域名+云服务器+springBoo:怎样零成本进行云服务器的学习

零成本进行云服务器的学习 1.项目开发需要学习云服务器的使用 2.申请域名 为了让服务器运行我的springBoot项目,我们首先需要一个域名,很多网站提供免费域名的使用申请,我在阿里云上申请了一年域名的体验。 3.将域名绑定到三丰云&#xff0c…

WCF的IIS宿主部署

IIS的web服务开启网上已经很多,不再赘述。 关键点:WCF发布的文件夹要加上IIS的权限能够读取。否则报没有权限。

动态规划——删除并获得点数

题目链接 leetcode在线oj题——删除并获得点数 题目描述 给你一个整数数组 nums ,你可以对它进行一些操作。 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums…

SQL性能分析——执行频率、慢查询日志、profile详情

1.SQL的执行频率 2.慢查询日志 show variables like slow_query_log;修改完成以后,再次查询以后发现,slow_query_log的开关时开着的。 3.profile详情

BGP实验--联邦

1,AS1存在两个环回,一个地址为192.168.1.0/24 该地址不嫩在任何协议中宣告 AS3中存在两个环回,一个地址为192.168.2.0/24该地址不能再任何协议中宣告,最终要求这两个环回可用互相通讯 AS1中的另一个环回为10.0.0.0 24&#…

在 Linux 系统上下载 Android SDK

使用ubuntu系统进行车机开发,今天开始配置环境,首先是下载android studio,然后下载android sdk,这里需要注意的是linux系统不能使用windows系统下的Android sdk,亲测会出现各种问题。 常规思路,下载sdk&am…

【前端知识】JavaScript——<script>的8个属性

【前端知识】JavaScript——<script>的8个属性 <script>元素的8个属性&#xff1a; 属性释义async表示应该立即开始下载脚本&#xff0c;但不能阻止其他页面动作&#xff0c;比如下载资源或等待其他脚本加载。只对外部脚本文件有效。charset使用 src 属性指定的代…

力扣 134. 加油站

题目来源&#xff1a;https://leetcode.cn/problems/gas-station/description/ C题解1&#xff1a; 感觉也属于暴力&#xff0c;有一点点简化。在汽油获得总量小于消耗总量时直接返回-1&#xff0c;对于出发的加油站编号&#xff0c;其当前站的汽油净获得量一定大于等于0&#…

【严重】Grafana Azure AD环境身份认证绕过漏洞

漏洞描述 Grafana 是一个跨平台、开源的数据可视化网络应用平台。Azure AD 是由微软提供的一种云身份验证和访问管理服务。 在 Azure AD 中&#xff0c;多个用户可以拥有相同的电子邮件地址。攻击者可以创建一个与目标 Grafana 账户相同的电子邮件地址的恶意帐户&#xff0c;并…

Java IO流的使用

IO流概述 Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。一个流可以理解为一个数据的序列。输入流表示从一个源读取数据&#xff0c;输出流表示向一个目标写数据。 Java.io 包中的流支持很多种格式&#xff0c;比如&#xff1a;基本…

SQLite数据库介绍以及安装

SQLite简介 轻量化&#xff0c;易用的嵌入式数据库&#xff0c;用于设备端的数据管理&#xff0c;可以理解成单点的数据库。传统服务器型数据 库用于管理多端设备&#xff0c;更加复杂 SQLite是一个无服务器的数据库&#xff0c;是自包含的。这也称为嵌入式数据库&#xff0c…

栈--C语言实现数据结构

本期带大家一起用C语言实现栈&#x1f308;&#x1f308;&#x1f308; 一、栈的概念&#x1f30e; 栈是一种常见的数据结构&#xff0c;它遵循后进先出&#xff08;Last In, First Out&#xff09;的原则。可以将其类比为现实生活中的一摞书或者一叠盘子。 栈由一个连续的内…

前端:运用html+css+js模仿京东上商品图片区域放大特效

前端:运用htmlcssjs模仿京东上商品图片区域放大特效 1. 前言2. 前端界面3. js实现鼠标移入效果4. 实现代码 1. 前言 最近在网页端浏览京东上的商品时&#xff0c;觉得上面的那张gif图片上实现的特效不错&#xff0c;于是自己打算使用htmlcssjs技术来实现一下上述特效效果&#…

【Ceph】Ceph集群应用详解

Ceph集群应用详解 1. 资源池Pool管理1.1 查看Pool集群信息的三种方式1.2 删除Pool资源池 2.创建CephFS文件系统MDS接口2.1 创建cephfs2.2 基于内核的客户端挂载2.3 基于fuse工具方式的客户端挂载 3.创建Ceph块存储系统RBD接口3.1 删除镜像3.2 还原镜像3.3 在线扩容3.4 回滚镜像…

flutter开发实战-卡片翻转动画效果Transform+IndexedStack+rotateAnimation

flutter开发实战-实现卡片翻转动画效果 之前开发中遇到了商品卡片翻转&#xff0c;商品正面是商品图片、商品名称&#xff1b;背面是商品价格&#xff0c;需要做卡片翻转动画。 动画实现即&#xff1a;在一段时间内&#xff0c;快速地多次改变UI外观&#xff1b;由于人眼会产生…

Ext JS中定义和使用类Ext JS风格的html 按钮

Ext JS 的按钮样式如下: 按钮的背景色默认为应用的主色调或是灰色系, 也可以通过样式设置按钮的背景色, 详细可以参考: Ext JS 如何设置工具栏按钮和一般按钮保持统一样式 但是, 在实际开发的场景中有可能某些按钮是不能通过Ext JS的Button 类进行创建的, 但是页面效果…