在 Linux 中使用内置数据库配置授权 - Amazon IoT SiteWise
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Linux 中使用内置数据库配置授权

配置授权规则时,有两种配置选项取决于您的部署设置。

  • Docker— 如果您在没有的情况下运行标准Docker安装Litmus Edge,请使用 Docker 网桥网关配置。当你只部署了 Amazon IoT SiteWise 组件时,通常会出现这种情况。

  • Litmus Edge— 如果您已在网关上Litmus Edge安装,请使用Litmus Edge网络子网配置。

注意

如果您最初配置网Docker桥网关,然后再进行安装Litmus Edge,请使用Litmus Edge网络子网选项重新配置授权规则,以确保所有组件之间的通信正常。

添加基本授权规则
  1. 验证 EMQX 代理是否已部署并正在运行。

  2. 在您的网关主机上启动 shell 会话。

  3. 通过运行以下Docker命令之一来确定网Docker桥网络网关或 Litmus Edge 网络子网 IP 地址:

    Docker bridge gateway
    docker network inspect bridge | grep IPAM -A9

    查看类似于以下内容的输出:

    "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.17.0.0/16", "Gateway": "172.17.0.1" } ] },

    记下网关值。默认情况下,172.17.0.1除非您有自定义Docker设置。

    Litmus Edge network subnet

    如果您已经Litmus Edge部署,请改为运行以下命令:

    docker network inspect LitmusNetwork | grep IPAM -A9

    记下子网值。

  4. 通过运行以下命令在 EMQX 代理容器上创建访问控制列表 (ACL) 文件:

    docker exec emqx mkdir /opt/emqx/data/authz/ && docker exec -it emqx vi /opt/emqx/data/authz/acl.conf
  5. 按 “i” 键进入编辑模式。

  6. 粘贴以下内容:

    Docker bridge gateway

    docker_bridge_gateway替换为上一步中的网关值。

    %%-------------------------------------------------------------------- %% -type(ipaddr() :: {ipaddr, string()}). %% %% -type(ipaddrs() :: {ipaddrs, string()}). %% %% -type(username() :: {user | username, string()} | {user | username, {re, regex()}}). %% %% -type(clientid() :: {client | clientid, string()} | {client | clientid, {re, regex()}}). %% %% -type(who() :: ipaddr() | ipaddrs() |username() | clientid() | %% {'and', [ipaddr() | ipaddrs()| username() | clientid()]} | %% {'or', [ipaddr() | ipaddrs()| username() | clientid()]} | %% all). %% %% -type(action() :: subscribe | publish | all). %% %% -type(topic_filters() :: string()). %% %% -type(topics() :: [topic_filters() | {eq, topic_filters()}]). %% %% -type(permission() :: allow | deny). %% %% -type(rule() :: {permission(), who(), access(), topics()} | {permission(), all}). %%-------------------------------------------------------------------- {allow, {ipaddr, "docker_bridge_gateway"}, all, ["$SYS/#", "#"]}. {deny, all}.
    Litmus Edge network subnet

    litmus_network_subnet替换为上一步中的子网值。

    %%-------------------------------------------------------------------- %% -type(ipaddr() :: {ipaddr, string()}). %% %% -type(ipaddrs() :: {ipaddrs, string()}). %% %% -type(username() :: {user | username, string()} | {user | username, {re, regex()}}). %% %% -type(clientid() :: {client | clientid, string()} | {client | clientid, {re, regex()}}). %% %% -type(who() :: ipaddr() | ipaddrs() |username() | clientid() | %% {'and', [ipaddr() | ipaddrs()| username() | clientid()]} | %% {'or', [ipaddr() | ipaddrs()| username() | clientid()]} | %% all). %% %% -type(action() :: subscribe | publish | all). %% %% -type(topic_filters() :: string()). %% %% -type(topics() :: [topic_filters() | {eq, topic_filters()}]). %% %% -type(permission() :: allow | deny). %% %% -type(rule() :: {permission(), who(), access(), topics()} | {permission(), all}). %%-------------------------------------------------------------------- {allow, {ipaddr, "litmus_network_subnet"}, all, ["$SYS/#", "#"]}. {deny, all}.

    此策略允许网关主机内的所有连接连接到代理、发布和订阅所有主题。这包括物联网 SiteWise OPC UA 收集器和物联网 SiteWise 发布者。

  7. 键入 “: wq”,然后按键保存Enter并退出文件编辑器。

    注意

    此时,规则已写入文件但尚未应用。

  8. 继续执行更新 EMQX 部署配置以进行授权