华为云用户手册

  • 配置边缘节点环境 以具备sudo权限的用户登录边缘节点。 GPU驱动配置。 如果边缘节点使用GPU,您需要安装并配置GPU驱动,详细方法请参见安装并配置GPU驱动。 NPU驱动配置。 如果边缘节点使用昇腾AI加速处理器,请确保已安装对应驱动。 在边缘节点上安装Docker并检查Docker状态。 Docker版本必须高于17.06,推荐使用18.06.3版本。请勿使用18.09.0版本Docker,该版本存在严重bug,如果已使用此版本,请尽快升级。 Docker安装完成后,可以执行docker -v命令检查Docker是否安装正常,如果回显如下则说明安装正常。 # docker -v Docker version 19.03.12, build 48a66213fee 配置边缘节点防火墙规则。 检查边缘节点防火墙状态。 systemctl status firewalld firewall-cmd --state 回显中,not running表示关闭,running表示开启。 如果防火墙开启,您需要打开8883端口,或关闭防火墙。 打开8883端口。 firewall-cmd --add-port=8883/tcp --permanent systemctl restart firewalld 关闭防火墙。 systemctl disable firewalld systemctl stop firewalld
  • 安全提示 为提升主机安全性,建议您对边缘节点进行操作系统加固,可参考: 设置所有OS系统密码(包括管理员和普通用户)、数据库账号密码、应用(WEB)系统管理账号密码为强密码,密码12位以上。强密码设置请参见账户密码最佳实践。 应用程序不以管理员权限账号运行,应用程序(如Web)不使用数据库管理员权限账号与数据库交互。设置安全组,仅向公网开放必要端口,业务WEB控制台端口、局域网内部通信端口避免暴露在公网。关闭高危端口(如SSH端口),或采取限制允许访问端口的源IP、使用VPN/ 堡垒机 建立的运维通道等措施消减风险。 业务数据定期异地备份,避免黑客入侵主机造成数据丢失。 定期检测系统和软件中的安全漏洞,及时更新系统安全补丁,将软件版本升级到官方最新版本。 建议从官方渠道下载安装软件,对非官方渠道下载的软件,建议使用杀毒软件扫描后再运行。 如果使用的是华为云 E CS ,可参考: 将主机登录方式设置为密钥登录,密钥登录设置请参见主机密码被暴力破解的解决方案。 使用华为云官方提供的管理检测与响应服务进行全面的安全体检或使用 企业主机安全 服务深度防御。
  • 配置边缘节点环境 以具备sudo权限的用户登录边缘节点。 GPU驱动配置。 如果边缘节点使用GPU,您需要安装并配置GPU驱动,详细方法请参见安装并配置GPU驱动。 NPU驱动配置。 如果边缘节点使用昇腾 AI加速处理器,请确保已安装对应驱动。 在边缘节点上安装Docker并检查Docker状态。 Docker版本必须高于17.06,推荐使用18.06.3版本。请勿使用18.09.0版本Docker,该版本存在严重bug,如果已使用此版本,请尽快升级。 Docker安装完成后,可以执行docker -v命令检查Docker是否安装正常,如果回显如下则说明安装正常。 # docker -v Docker version 19.03.12, build 48a66213fee 配置边缘节点防火墙规则。 检查边缘节点防火墙状态。 systemctl status firewalld firewall-cmd --state 回显中,not running表示关闭,running表示开启。 如果防火墙开启,您需要打开8883端口,或关闭防火墙。 打开8883端口。 firewall-cmd --add-port=8883/tcp --permanent systemctl restart firewalld 关闭防火墙。 systemctl disable firewalld systemctl stop firewalld
  • 安全提示 为提升主机安全性,建议您对边缘节点进行操作系统加固,可参考: 设置所有OS系统口令(包括管理员和普通用户)、数据库账号口令、应用(WEB)系统管理账号口令为强口令,密码12位以上。强口令设置请参见账户密码最佳实践。 应用程序不以管理员权限账号运行,应用程序(如Web)不使用数据库管理员权限账号与数据库交互。设置安全组,仅向公网开放必要端口,业务WEB控制台端口、局域网内部通信端口避免暴露在公网。关闭高危端口(如SSH端口),或采取限制允许访问端口的源IP、使用VPN/堡垒机建立的运维通道等措施消减风险。 业务数据定期异地备份,避免黑客入侵主机造成数据丢失。 定期检测系统和软件中的安全漏洞,及时更新系统安全补丁,将软件版本升级到官方最新版本。 建议从官方渠道下载安装软件,对非官方渠道下载的软件,建议使用杀毒软件扫描后再运行。 如果使用的是华为云 ECS,可参考: 将主机登录方式设置为密钥登录,密钥登录设置请参见主机密码被暴力破解的解决方案。 使用华为云官方提供的管理检测与响应服务进行全面的安全体检或使用企业主机安全服务深度防御。
  • IEF预置的告警 IEF为每个边缘节点预置了7个告警规则,这7类告警会自动上报到 AOM 。 告警名称 触发条件 清除条件 告警等级 容器引擎异常 边缘节点配置Docker使能时,查询Docker信息失败 Docker正常运行,EdgeCore能够获取到Docker信息 紧急 存活探针异常 应用配置存活探针,探针检测到异常 容器探针检测成功 重要 申请GPU资源失败 部署GPU应用,申请GPU资源失败 成功申请到GPU资源 紧急 获取GPU信息失败 边缘节点配置GPU使能时,查询GPU信息失败 成功查询到GPU信息 紧急 AK/SK无效 EdgeHub连续10次分发临时AK/SK,检测到过期或者状态异常 EdgeHub成功分发临时AK/SK 重要 应用重启 应用容器异常重启 无需清除 次要 容器绑定网卡异常 容器绑定的网卡发生异常 容器绑定的网卡状态正常 紧急 图6 查看告警
  • 日志说明 边缘节点会上传系统日志和应用日志,您需要在IEF控制台上打开日志开关。 系统日志:边缘节点上IEF软件(如edge-core、edge-logger和edge-monitor等)产生的日志。 应用日志:边缘节点上部署的应用所产生的日志。 边缘节点会上传“/var/IEF/app/log”目录的日志,您可以在创建应用时将容器中目录挂载到“/var/IEF/app/log/{appName}”下,具体挂载方法请参见▪hostPath:将主机某个目录挂载到容器中。在AOM中可以按{appName}分类查看到应用的日志。 边缘节点会上传容器日志,日志组件会上传“{{DOCKER_ROOT_DIR}}/containers/{containerID}/{containerID}-json.log”文件的内容,DOCKER_ROOT_DIR可以通过docker info命令查询到,containerID就是容器ID。
  • 日志说明 边缘节点会上传系统日志和应用日志,您需要在IEF控制台上打开日志开关。 系统日志:边缘节点上IEF软件(如edge-core、edge-logger和edge-monitor等)产生的日志。 应用日志:边缘节点上部署的应用所产生的日志。 边缘节点会上传“/var/IEF/app/log”目录的日志,您可以在创建应用时将容器中目录挂载到“/var/IEF/app/log/{appName}”下,具体挂载方法请参见▪hostPath:将主机某个目录挂载到容器中。在AOM中可以按{appName}分类查看到应用的日志。 边缘节点会上传容器日志,日志组件会上传“{{DOCKER_ROOT_DIR}}/containers/{containerID}/{containerID}-json.log”文件的内容,DOCKER_ROOT_DIR可以通过docker info命令查询到,containerID就是容器ID。
  • IEF预置的告警 IEF为每个边缘节点预置了7个告警规则,这7类告警会自动上报到AOM。 告警名称 触发条件 清除条件 告警等级 容器引擎异常 边缘节点配置Docker使能时,查询Docker信息失败 Docker正常运行,EdgeCore能够获取到Docker信息 紧急 存活探针异常 应用配置存活探针,探针检测到异常 容器探针检测成功 重要 申请GPU资源失败 部署GPU应用,申请GPU资源失败 成功申请到GPU资源 紧急 获取GPU信息失败 边缘节点配置GPU使能时,查询GPU信息失败 成功查询到GPU信息 紧急 AK/SK无效 EdgeHub连续10次分发临时AK/SK,检测到过期或者状态异常 EdgeHub成功分发临时AK/SK 重要 应用重启 应用容器异常重启 无需清除 次要 容器绑定网卡异常 容器绑定的网卡发生异常 容器绑定的网卡状态正常 紧急 图6 查看告警
  • 亲和与反亲和调度策略 在创建容器应用时,可以设置亲和/反亲和调度策略,例如将某类应用部署到某些特定的节点、不同应用部署到不同的节点等等。 IEF当前支持简易的调度策略,具体如下。 亲和性 容器应用与节点亲和:当容器应用与节点亲和时,容器应用只会调度到亲和的这些节点中。在设置节点的亲和与反亲和时,如果设置了与某些节点亲和,那就没有必要再设置与其他节点反亲和,因为与这些节点亲和了,必然不会调度到其他节点。 容器应用与容器应用亲和:当容器应用A与容器应用B亲和时,容器应用A只会调度到容器应用B所在的节点。 反亲和性 容器应用与节点反亲和:当容器应用与节点反亲和时,容器应用不会调度到反亲和的这些节点中。 容器应用与容器应用反亲和:当容器应用A与容器应用B反亲和时,容器应用A不会调度到容器应用B所在的节点。
  • 亲和反亲和策略示例 您可以同时设置多个亲和反亲和对象。例如当前节点组有4个节点,Node1、Node2、Node3和Node4,容器应用App1的实例运行在Node1和Node2上,容器应用App2的实例运行在Node3上。这时您需要创建一个容器应用App3,容器应用App3与节点Node1、Node2、Node3亲和,与容器应用App1亲和,与容器应用App2反亲和,那容器应用App3只会被调度到Node1、Node2上。下图示例中,App3只有一个实例,被调度到了Node1上。 图1 App3被调度到Node1上
  • 支持订阅的事件 当前支持订阅如下事件。 表1 支持订阅的事件 系统事件 Topic 资源类型 操作 实例创建 $hw/events/instance/+/created 应用实例(instance) created 实例更新 $hw/events/instance/+/updated 应用实例(instance) updated 实例删除 $hw/events/instance/+/deleted 应用实例(instance) deleted 应用删除 $hw/events/deployment/+/deleted 容器应用(deployment) deleted 应用创建 $hw/events/deployment/+/created 容器应用(deployment) created 应用更新 $hw/events/deployment/+/updated 容器应用(deployment) updated 节点创建 $hw/events/edgeNode/+/created 边缘节点(edgeNode) created 节点更新 $hw/events/edgeNode/+/updated 边缘节点(edgeNode) updated 节点删除 $hw/events/edgeNode/+/deleted 边缘节点(edgeNode) deleted 节点上线 $hw/events/edgeNode/+/online 边缘节点(edgeNode) online 节点离线 $hw/events/edgeNode/+/offline 边缘节点(edgeNode) offline 设备创建 $hw/events/device/+/created 终端设备(device) created 设备更新 $hw/events/device/+/updated 终端设备(device) updated 设备删除 $hw/events/device/+/deleted 终端设备(device) deleted
  • 订阅后说明 创建系统订阅后,当有系统事件发生,在IEF控制台系统订阅列表中,会记录消息转发的次数。 图3 转发消息数 同时IEF会调用APIG中注册的API,请求消息体如下所示。请求消息体采用标准的CloudEvents格式,CloudEvents详细信息请参见这里。 { "data": { "event_type": "instance", "operation": "created", "timestamp": 134567677, "topic": "$hw/events/deployment/+/created", "name": "xxxx", "attributes": {"ID":"x"} }, "datacontenttype": "application/json", "source": "sysevents", "id": "xxxx", "time": "2020-11-5 xxx" } data:系统事件的数据。 event_type:资源类型,String类型。 operation:资源的操作类型,String类型。 topic:消息发送的Topic,String类型。 timestamp:事件产生的时间戳,Uint64类型。 name:资源名称,String类型。 attributes:资源的属性,删除资源时消息中无此参数,Object类型。 datacontenttype:系统事件数据内容的格式,String类型。 source:系统事件的来源,String类型。 id:系统事件ID,String类型。 time:系统事件产生时间,String类型。 当前支持的资源类型、操作和Topic如下表所示。 表2 支持订阅的事件 系统事件 Topic 资源类型 操作 实例创建 $hw/events/instance/+/created 应用实例(instance) created 实例更新 $hw/events/instance/+/updated 应用实例(instance) updated 实例删除 $hw/events/instance/+/deleted 应用实例(instance) deleted 应用删除 $hw/events/deployment/+/deleted 容器应用(deployment) deleted 应用创建 $hw/events/deployment/+/created 容器应用(deployment) created 应用更新 $hw/events/deployment/+/updated 容器应用(deployment) updated 节点创建 $hw/events/edgeNode/+/created 边缘节点(edgeNode) created 节点更新 $hw/events/edgeNode/+/updated 边缘节点(edgeNode) updated 节点删除 $hw/events/edgeNode/+/deleted 边缘节点(edgeNode) deleted 节点上线 $hw/events/edgeNode/+/online 边缘节点(edgeNode) online 节点离线 $hw/events/edgeNode/+/offline 边缘节点(edgeNode) offline 设备创建 $hw/events/device/+/created 终端设备(device) created 设备更新 $hw/events/device/+/updated 终端设备(device) updated 设备删除 $hw/events/device/+/deleted 终端设备(device) deleted
  • 支持订阅的事件 当前支持订阅如下事件。 表1 支持订阅的事件 系统事件 Topic 资源类型 操作 实例创建 $hw/events/instance/+/created 应用实例(instance) created 实例更新 $hw/events/instance/+/updated 应用实例(instance) updated 实例删除 $hw/events/instance/+/deleted 应用实例(instance) deleted 应用删除 $hw/events/deployment/+/deleted 容器应用(deployment) deleted 应用创建 $hw/events/deployment/+/created 容器应用(deployment) created 应用更新 $hw/events/deployment/+/updated 容器应用(deployment) updated 节点上线 $hw/events/edgeNode/+/online 边缘节点(edgeNode) online 节点离线 $hw/events/edgeNode/+/offline 边缘节点(edgeNode) offline
  • 订阅后说明 创建系统订阅后,当有系统事件发生,在IEF控制台系统订阅列表中,会记录消息转发的次数。 图3 转发消息数 同时IEF会调用APIG中注册的API,请求消息体如下所示。请求消息体采用标准的CloudEvents格式,CloudEvents详细信息请参见这里。 { "data": { "event_type": "instance", "operation": "created", "timestamp": 134567677, "topic": "$hw/events/deployment/+/created", "name": "xxxx", "attributes": {"ID":"x"} }, "datacontenttype": "application/json", "source": "sysevents", "id": "xxxx", "time": "2020-11-5 xxx" } data:系统事件的数据。 event_type:资源类型,String类型。 operation:资源的操作类型,String类型。 topic:消息发送的Topic,String类型。 timestamp:事件产生的时间戳,Uint64类型。 name:资源名称,String类型。 attributes:资源的属性,删除资源时消息中无此参数,Object类型。 datacontenttype:系统事件数据内容的格式,String类型。 source:系统事件的来源,String类型。 id:系统事件ID,String类型。 time:系统事件产生时间,String类型。 当前支持的资源类型、操作和Topic如表1所示。
  • 操作步骤 登录 CTS 管理控制台。 选择左侧导航栏的“事件列表”,进入事件列表页面。 事件记录了云资源的操作详情,设置筛选条件,单击“查询”。 当前事件列表支持四个维度的组合查询,详细信息如下: 事件类型、事件来源、资源类型和筛选类型。 在下拉框中选择查询条件。其中,“事件类型”选择“管理事件”,“事件来源”选择“IEF”。 图1 设置筛选条件 其中, 筛选类型选择“按资源ID”时,还需手动输入某个具体的资源ID,目前仅支持全字匹配模式的查询。 筛选类型选择“按资源名称”时,还需选择或手动输入某个具体的资源名称。 操作用户:在下拉框中选择某一具体的操作用户。 事件级别:可选项为“所有事件级别”、“Normal”、“Warning”、“Incident”,只可选择其中一项。 时间范围:可选项为“最近1小时”、“最近1天”、“最近1周”和“自定义时间段”,本示例选择“最近1周”。 在需要查看的事件左侧,单击图标展开该事件的详细信息。 图2 展开事件 在需要查看的事件右侧,单击“查看事件”,弹出一个窗口,显示了该操作事件结构的详细信息。 关于 云审计 事件结构的关键字段详解,请参见“事件结构”。
  • 操作步骤 登录CTS管理控制台。 选择左侧导航栏的“事件列表”,进入事件列表页面。 事件记录了云资源的操作详情,设置筛选条件,单击“查询”。 当前事件列表支持四个维度的组合查询,详细信息如下: 事件类型、事件来源、资源类型和筛选类型。 在下拉框中选择查询条件。其中,“事件类型”选择“管理事件”,“事件来源”选择“IEF”。 图1 设置筛选条件 其中, 筛选类型选择“按资源ID”时,还需手动输入某个具体的资源ID,目前仅支持全字匹配模式的查询。 筛选类型选择“按资源名称”时,还需选择或手动输入某个具体的资源名称。 操作用户:在下拉框中选择某一具体的操作用户。 事件级别:可选项为“所有事件级别”、“Normal”、“Warning”、“Incident”,只可选择其中一项。 时间范围:可选项为“最近1小时”、“最近1天”、“最近1周”和“自定义时间段”,本示例选择“最近1周”。 在需要查看的事件左侧,单击图标展开该事件的详细信息。 图2 展开事件 在需要查看的事件右侧,单击“查看事件”,弹出一个窗口,显示了该操作事件结构的详细信息。 关于云审计事件结构的关键字段详解,请参见“事件结构”。
  • 支持审计的关键操作列表 表1 云审计服务支持的IEF操作列表 操作名称 资源类型 事件名称 注册边缘节点 node createEdgeNode 更新边缘节点 node updateEdgeNode 删除边缘节点 node deleteEdgeNode 创建边缘节点组 group createEdgeGroup 更新边缘节点组 group updateEdgeGroup 删除边缘节点组 group deleteEdgeGroup 创建设备模板 deviceTemplate createDeviceTemplate 更新设备模板 deviceTemplate updateDeviceTemplate 删除设备模板 deviceTemplate deleteDeviceTemplate 注册设备 device createDevice 更新设备 device updateDevice 删除设备 device deleteDevice 部署Edge-Connector device deployConnector 更新设备孪生 device updateDeviceTwin 更新设备访问配置 device updateDeviceAccessConfig 创建应用模板 application createApplication 更新应用模板 application updateApplication 删除应用模板 application deleteApplication 创建应用模板版本 appVersion createAppVersion 更新应用模板版本 appVersion updateAppVersion 删除应用模板版本 appVersion deleteAppVersion 创建配置项 configmap createConfigMap 更新配置项 configmap updateConfigMap 删除配置项 configmap deleteConfigMap 创建容器应用 deployment createDeployment 更新容器应用 deployment updateDeployment 删除容器应用 deployment deleteDeployment 查询容器应用列表 deployment getDeploymentList 查询容器应用 deployment getDeployment 创建端点 endpoint createEndpoint 删除端点 endpoint deleteEndpoint 添加节点证书 node AddNodeCert 删除节点证书 node deleteNodeCert 升级固件 nodeFirmware UpgradeNodeFirmware 查询应用实例列表 Pods getPods 查询实例 Pod getPod 创建节点注册作业 product createProduct 删除节点注册作业 product deleteProduct 创建节点升级作业/创建应用部署作业/创建应用升级作业 batchJob createJob 停止节点升级作业/停止应用部署作业/停止应用升级作业 batchJob pauseJob 删除节点升级作业/删除应用部署作业/删除应用升级作业 batchJob deleteJob 恢复节点升级作业/恢复应用部署作业/恢复应用升级作业 batchJob restoreJob 重试节点升级作业/重试应用部署作业/重试应用升级作业 batchJob retryJob 查询配额 quota getQuota 更新配额 quota updateQuota 创建规则 rule createRule 删除规则 rule deleteRule 更新规则 rule updateRule 创建密钥 secret createSecret 更新密钥 secret updateSecret 删除密钥 secret deleteSecret 过滤标签 Tags filterTags 批量添加删除标签 Tags batchAddDeleteTags 添加标签 Tags addTag 删除标签 Tags deleteTag 绑定加密数据 encryptdata bindEncryptdata 创建加密数据 encryptdata createEncryptData 删除加密数据 encryptdata deleteEncryptData 解绑加密数据 encryptdata unbindEncryptdata 更新加密数据 encryptdata updateEncryptData 创建网关 gateway createGateway 创建虚拟服务 gateway createVirtualService 删除网关 gateway deleteGateway 删除虚拟服务 gateway deleteVirtualService 更新网关 gateway updateGateway 更新虚拟服务 gateway updateVirtualService 创建系统订阅 Systemevent createSystemevent 删除系统订阅 Systemevent DeleteSystemevent 启用系统订阅 Systemevent startSystemevent 停用系统订阅 Systemevent stopSystemevent
  • 支持审计的关键操作列表 表1 云审计服务支持的IEF操作列表 操作名称 资源类型 事件名称 注册边缘节点 node createEdgeNode 更新边缘节点 node updateEdgeNode 删除边缘节点 node deleteEdgeNode 创建设备模板 deviceTemplate createDeviceTemplate 更新设备模板 deviceTemplate updateDeviceTemplate 删除设备模板 deviceTemplate deleteDeviceTemplate 注册设备 device createDevice 更新设备 device updateDevice 删除设备 device deleteDevice 部署Edge-Connector device deployConnector 更新设备孪生 device updateDeviceTwin 更新设备访问配置 device updateDeviceAccessConfig 创建应用模板 application createApplication 更新应用模板 application updateApplication 删除应用模板 application deleteApplication 创建应用模板版本 appVersion createAppVersion 更新应用模板版本 appVersion updateAppVersion 删除应用模板版本 appVersion deleteAppVersion 创建配置项 configmap createConfigMap 更新配置项 configmap updateConfigMap 删除配置项 configmap deleteConfigMap 创建容器应用 deployment createDeployment 更新容器应用 deployment updateDeployment 删除容器应用 deployment deleteDeployment 查询容器应用列表 deployment getDeploymentList 查询容器应用 deployment getDeployment 创建端点 endpoint createEndpoint 删除端点 endpoint deleteEndpoint 添加节点证书 node AddNodeCert 删除节点证书 node deleteNodeCert 升级固件 nodeFirmware UpgradeNodeFirmware 查询应用实例列表 Pods getPods 查询实例 Pod getPod 创建节点注册作业 product createProduct 删除节点注册作业 product deleteProduct 创建节点升级作业 batchJob createJob 停止节点升级作业 batchJob pauseJob 删除节点升级作业 batchJob deleteJob 查询配额 quota getQuota 更新配额 quota updateQuota 创建规则 rule createRule 删除规则 rule deleteRule 更新规则 rule updateRule 创建密钥 secret createSecret 更新密钥 secret updateSecret 删除密钥 secret deleteSecret 过滤标签 Tags filterTags 批量添加删除标签 Tags batchAddDeleteTags 添加标签 Tags addTag 删除标签 Tags deleteTag 创建系统订阅 Systemevent createSystemevent 删除系统订阅 Systemevent DeleteSystemevent 启用系统订阅 Systemevent startSystemevent 停用系统订阅 Systemevent stopSystemevent
  • 操作场景 应用网格提供非侵入式的微服务治理解决方案,支持完整的生命周期管理和流量治理,支持负载均衡等多种治理能力。 应用网格中有如下概念: 服务:服务定义了实例及访问实例的途径。使用服务名称可以代替IP地址,从而实现节点上应用间的相互访问。 网关:网关可以将通过IEF部署的边缘应用暴露给外部应用访问,并能通过路由规则转发流量。 如下图所示,访问网关应用所在边缘节点的IP:网关端口/URI,就能将流量转发到对应的服务,再由服务转发到对应的后端应用实例。 图1 网关流量转发路径示意图 IEF 基于 KubeEdge 生态构建,将云原生容器化应用程序编排能力延伸到了边缘。但是,在边缘计算场景下,网络拓扑较为复杂,不同区域中的边缘节点往往网络不互通,并且应用之间流量的互通是业务的首要需求,IEF 兼容社区应用网格的能力,可以提供服务和网关元数据的下发。用户使用时,需要配合在边缘节点部署社区 EdgeMesh 应用,可参考:https://github.com/kubeedge/edgemesh/。 父主题: 应用网格
  • 示例流程 图1 给用户授权IEF权限流程 创建用户组并授权 在 IAM 控制台创建用户组,并授予IEF只读权限“IEF ReadOnlyAccess”。为用户组授权时,作用范围选择“区域级项目”,然后根据以下原则设置: 在个别区域授权:选择指定的一个或多个项目,例如“cn-north-4 [华北-北京四]”。注意:此场景选择“所有项目”时,授权将不生效。 在所有区域授权:选择“所有项目”。 图2 在个别区域授权 图3 在所有区域授权 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1.创建用户组并授权中创建的用户组。 用户登录并验证权限。 新创建的用户登录控制台,验证IEF服务的管理员权限。
  • 示例 当用户名为test的时候,才可以使用该策略。 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "ief:deployment:create", "ief:appVersion:update", "ief:deployment:update", "ief:application:create" ], "Condition": { "StringEquals": { "ief:AssumeUserName": [ "test" ] } }, "Resource": [ "ief:*:*:deployment:*", "ief:*:*:appVersion:*", "ief:*:*:application:*" ] } ] }
  • IEF资源 资源是服务中存在的对象。在IEF中,资源包括:product、node、group、deployment、batchjob、application、appVersion、IEFInstance,您可以在创建自定义策略时,通过指定资源路径来选择特定资源。 表1 IEF的指定资源与对应路径 指定资源 资源名称 资源路径 product 节点注册作业 IEF:*:*:product: node 边缘节点 IEF:*:*:node: group 边缘节点组 IEF:*:*:group: deployment 应用部署 IEF:*:*:deployment: batchjob 批量作业 IEF:*:*:batchjob: application 应用模板 IEF:*:*:application: appVersion 应用模板版本 IEF:*:*:appVersion: IEFInstance IEF实例 IEF:*:*:IEFInstance: 父主题: 权限管理
  • IEF自定义策略样例 授权用户创建、更新应用和应用模板的权限。 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "ief:deployment:create", "ief:appVersion:update", "ief:deployment:update", "ief:application:create" ], "Condition": { "StringEquals": { "ief:AssumeUserName": [ "test" ] } }, "Resource": [ "ief:*:*:deployment:*", "ief:*:*:appVersion:*", "ief:*:*:application:*" ] } ] }
  • IEF自定义策略样例 授权用户创建、更新应用和应用模板的权限。 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "ief:deployment:create", "ief:appVersion:update", "ief:deployment:update", "ief:application:create" ], "Condition": { "StringEquals": { "ief:AssumeUserName": [ "test" ] } }, "Resource": [ "ief:*:*:deployment:*", "ief:*:*:appVersion:*", "ief:*:*:application:*" ] } ] }
  • 发送消息 在边缘节点使用MQTT客户端发送消息。 此处需要放到创建消息路由中指定的Topic,如下图所示使用mosquitto_pub发送。 [root@ief-node ~]# mosquitto_pub -t '05e1aef9040010e22fccc009adecb056/nodes/7092ad14-adee-4a09-b969-1505bbdecef5/user/aaa' -d -m '{ "edgemsg": "msgToCloud"}' Client mosq-p5LouPQIW2gx0JPkRF sending CONNECT Client mosq-p5LouPQIW2gx0JPkRF received CONNACK (0) Client mosq-p5LouPQIW2gx0JPkRF sending PUBLISH (d0, q0, r0, m1, '05e1aef9040010e22fccc009adecb056/nodes/7092ad14-adee-4a09-b969-1505bbdecef5/user/aaa', ... (26 bytes)) Client mosq-p5LouPQIW2gx0JPkRF sending DISCONNECT 消息发送后,您可以在消息路由处看到已经成功转发一条消息,如下图所示。 图4 转发消息数 您可以在DIS界面看到有消息流入,如下图所示。 图5 DIS数据监控
  • 操作场景 IEF支持从边缘节点上报消息到云端。 您可以将消息发送到边缘节点SystemEventBus(MQTT broker)的自定义Topic中,IEF会将这些数据转发到DIS通道或APIG后端地址。数据转发到DIS通道或者APIG后端地址后,您可以提取这些数据,并对数据进行处理分析。 本章节使用DIS端点作为示例,APIG端点的使用方法类似,主要分如下几个步骤。 创建消息端点 购买DIS接入通道 创建消息路由 发送消息
  • 发送消息 在边缘节点使用MQTT客户端发送消息。 此处需要放到创建消息路由中指定的Topic,如下图所示使用mosquitto_pub发送。 [root@ief-node ~]# mosquitto_pub -t '05e1aef9040010e22fccc009adecb056/nodes/7092ad14-adee-4a09-b969-1505bbdecef5/user/aaa' -d -m '{ "edgemsg": "msgToCloud"}' Client mosq-p5LouPQIW2gx0JPkRF sending CONNECT Client mosq-p5LouPQIW2gx0JPkRF received CONNACK (0) Client mosq-p5LouPQIW2gx0JPkRF sending PUBLISH (d0, q0, r0, m1, '05e1aef9040010e22fccc009adecb056/nodes/7092ad14-adee-4a09-b969-1505bbdecef5/user/aaa', ... (26 bytes)) Client mosq-p5LouPQIW2gx0JPkRF sending DISCONNECT 消息发送后,您可以在消息路由处看到已经成功转发一条消息,如下图所示。 图4 转发消息数 您可以在DIS界面看到有消息流入,如下图所示。 图5 DIS数据监控
  • 操作场景 IEF支持从边缘节点上报消息到云端。 您可以将消息发送到边缘节点SystemEventBus(MQTT broker)的自定义Topic中,IEF会将这些数据转发到DIS通道或APIG后端地址。数据转发到DIS通道或者APIG后端地址后,您可以提取这些数据,并对数据进行处理分析。 本章节使用DIS端点作为示例,APIG端点的使用方法类似,主要分如下几个步骤。 创建消息端点 购买DIS接入通道 创建消息路由 发送消息
  • 操作场景 IEF支持从云端SystemREST下发消息到边缘节点的SystemEventBus(MQTT broker)。 通过调用开放在公网的IEF云端的REST Gateway接口,结合节点ID和自定义Topic,向边缘节点中的SystemEventBus发送消息。您的终端设备可以通过订阅对应的自定义Topic进行消息接收,实现自定义Topic的从云到边的消息下发。 使用方法主要分如下三个步骤。 创建消息路由 发送消息 接收消息
  • 接收消息 登录边缘节点。 使用MQTT客户端接收消息。 当前边缘节点MQTT支持两种模式。 一种是内置的MQTT broker(使用8883端口),需要使用节点证书认证,然后订阅对应Topic接收消息,具体使用方式请参见使用证书进行安全认证。 另外一种是使用外置的MQTT broker(使用1883端口),需要先安装第三方MQTT broker,然后订阅对应Topic接收消息。 这里介绍使用外置的MQTT broker的方式,外置的MQTT broker需要先安装MQTT broker,例如安装Mosquitto,步骤如下。 对于Ubuntu操作系统,可以使用如下命令安装mosquitto: apt-get install mosquitto systemctl start mosquitto systemctl enable mosquitto 对于CentOS操作系统,使用如下命令安装mosquitto: yum install epel-release yum install mosquitto systemctl start mosquitto systemctl enable mosquitto 安装完成后,使用订阅命令订阅,订阅后如果有消息发送,就会收到消息,如下所示。其中#表示订阅任何主题,可以替换为指定的主题,如/aaa、/bbb等。 [root@ief-node ~]# mosquitto_sub -t '#' -d Client mosq-m02iwjsp4j2ISMw6rw sending CONNECT Client mosq-m02iwjsp4j2ISMw6rw received CONNACK (0) Client mosq-m02iwjsp4j2ISMw6rw sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 0, Options: 0x00) Client mosq-m02iwjsp4j2ISMw6rw received SUBACK Subscribed (mid: 1): 0 Client mosq-m02iwjsp4j2ISMw6rw received PUBLISH (d0, q0, rQ, mQ, '/aaa', ... (31 bytes)) { "test-key": "test-value" }
共100000条