快速解答: 在 OpenResty Edge 的 Admin 控制台中,给某个用户授予对某个 DNS 应用的只读访问权限,做法是把该用户放进一个拥有读取权限的用户组,再把这个用户组授权到那个具体的 DNS 应用上。权限是授予用户组的,而不是单个用户;并且默认情况下,普通用户根本看不到 DNS 功能。完整步骤如下:

  1. 以超级用户身份登录。
  2. 创建一个用户组(例如 test-dns-access),编辑其权限,为 DNS 功能和 DNS 记录页面都启用读取权限。
  3. 进入目标 DNS 应用,打开它的“用户组”选项卡,把该用户组授权到这个应用。
  4. 创建一个用户(或把已有用户加入)到该组。该用户登录后可以打开这个 DNS 应用、读取其记录和权威服务器,但添加、编辑、删除按钮都是隐藏的。

下面的截图逐步演示了这些操作。

首先进入 OpenResty Edge 的 Admin Web 控制台。这是我们控制台的样例部署。每个用户都有自己的本地部署。

Screenshot

以超级用户的身份查看 DNS 页面权限

首先,我们进入 DNS 页面。我们目前是以超级用户的身份登录,所以我们可以看到具有所有权限的页面。

Screenshot

搜索示例应用,test-dns.com

Screenshot

点击进入。

Screenshot

作为超级用户,我有写入的权限。所以我可以添加 DNS 记录。

Screenshot

或编辑或删除现有记录。

Screenshot

除了 DNS 记录,我还可以编辑域名服务器

Screenshot

或控制具有此 DNS 应用权限的用户组。

Screenshot

我们在《如何在 OpenResty Edge 中配置 DNS 记录》中详细介绍了记录的配置。

创建一个只有此 DNS 应用的读取权限的用户组

接下来,让我们创建一个只有此 DNS 应用的读取权限的示例用户组。 并将一个普通用户放入该组。 请注意,默认情况下,普通用户无法使用 DNS 功能。

先进入 “用户和用户组” 页面。

Screenshot

然后进入 “用户组” 页面。

Screenshot

这是我们样例部署正在使用的一些用户组列表。 我们在《OpenResty Edge Web 控制台中的用户管理与访问控制》中介绍了与用户组相关的功能。

点击这里创建一个新的用户组。

Screenshot

我们将新用户组命名为 test-dns-access。

Screenshot

用户组创建好了。

Screenshot

这里是权限详情的列表,显示了每个页面或部分的权限。

Screenshot

我们可以看到,默认情况下,该用户组无法使用 DNS 和 DNS 记录页面。

Screenshot

所以我们需要编辑权限,给予读取权限。

Screenshot

勾选此项以启用读取权限。

Screenshot

保存。

Screenshot

还要给 DNS 记录授予读取权限。

Screenshot

勾选此项以启用 DNS 记录的读取权限。

Screenshot

再次保存。

Screenshot

用户组已配置好。接下来进入我们的示例 DNS 应用,并将权限授予该用户组。

Screenshot

再次搜索应用。

Screenshot

进入该应用。

Screenshot

点击 “用户组” 选项卡。

Screenshot

选择 “test-dns-access” 组,并将权限赋予该用户组。

Screenshot

保存。

Screenshot

创建一个测试帐户

接下来我们进入用户页面,创建一个测试帐户,并将其放在 test-dns-access 用户组下。 这个测试帐户将能够看到我们的示例 DNS 应用,但只有读取权限。

Screenshot

点击此按钮添加一个新用户。

Screenshot

我们将其命名为 “jeff-tester”。

Screenshot

输入密码。

Screenshot

再次输入密码进行确认。

Screenshot

然后选择 “test-dns-access” 作为该用户的组。

Screenshot

保存它。

Screenshot

测试用户已创建。

Screenshot

接下来我们切换登录帐户。

Screenshot

退出当前帐户。

Screenshot

使用我们刚刚设置的用户名和密码登录。

输入用户名。

Screenshot

输入密码。

Screenshot

登录。

Screenshot

好了,我们现在是以普通用户身份登录了。 我们可以看到提示显示,普通用户没有权限查看用户和用户组页面,这是符合预期的。

Screenshot

查看 DNS 应用页面的所授予的权限

我们进入 DNS 页面。

Screenshot

在这里,我们看到该测试用户只能看到其所属用户组能看到的 DNS 应用。 而且在这个页面上,添加、编辑和删除 DNS 应用的按钮都是隐藏的。

如果我们进入 DNS 应用。

Screenshot

我们可以看到,这个测试用户只能读取相关信息。 测试用户不能添加、编辑或删除 DNS 记录。没有可用的按钮。

我们进入 “权威的服务器” 选项卡,

Screenshot

可以看到所有的配置也是只读的。

Screenshot

常见问题

普通用户默认能看到 DNS 功能吗?

不能。默认情况下,普通用户以及新建的用户组都无法使用 DNS 和 DNS 记录页面。必须为该用户组显式启用读取(或写入)权限,其成员才能看到 DNS 下的任何内容。

DNS 权限是授予用户还是用户组?

授予用户组。你为用户组赋予读取权限,把该组授权到具体的 DNS 应用上,再把用户放进这个组。用户从其所属的用户组继承访问权限。

只读用户能对 DNS 应用做什么?

只读用户可以查看其用户组被授权的那些应用的 DNS 记录和权威服务器配置。添加、编辑、删除按钮都是隐藏的,因此无法修改记录或域名服务器;也看不到未授权给其用户组的 DNS 应用。

DNS 应用的读取权限和写入权限有什么区别?

读取权限只允许用户查看 DNS 记录和服务器配置。写入权限还额外允许添加、编辑、删除 DNS 记录以及编辑域名服务器——这正是超级用户所拥有的权限。

关于 OpenResty Edge

OpenResty Edge 是一款专为微服务和分布式流量架构设计的全能型网关软件,由我们自主研发。它集流量管理、私有 CDN 构建、API 网关、安全防护等功能于一体,帮助您轻松构建、管理和保护现代应用程序。OpenResty Edge 拥有业界领先的性能和可扩展性,能够满足高并发、高负载场景下的苛刻需求。它支持调度 K8s 等容器应用流量,并可管理海量域名,轻松满足大型网站和复杂应用的需求。

如果你喜欢这个教程,请订阅这个博客网站和我们的 YouTube 频道B 站频道。谢谢!

关于作者

章亦春是开源 OpenResty® 项目创始人兼 OpenResty Inc. 公司 CEO 和创始人。

章亦春(Github ID: agentzh),生于中国江苏,现定居美国湾区。他是中国早期开源技术和文化的倡导者和领军人物,曾供职于多家国际知名的高科技企业,如 Cloudflare、雅虎、阿里巴巴, 是 “边缘计算“、”动态追踪 “和 “机器编程 “的先驱,拥有超过 22 年的编程及 16 年的开源经验。作为拥有超过 4000 万全球域名用户的开源项目的领导者。他基于其 OpenResty® 开源项目打造的高科技企业 OpenResty Inc. 位于美国硅谷中心。其主打的两个产品 OpenResty XRay(利用动态追踪技术的非侵入式的故障剖析和排除工具)和 OpenResty Edge(最适合微服务和分布式流量的全能型网关软件),广受全球众多上市及大型企业青睐。在 OpenResty 以外,章亦春为多个开源项目贡献了累计超过百万行代码,其中包括,Linux 内核、Nginx、LuaJITGDBSystemTapLLVM、Perl 等,并编写过 60 多个开源软件库。

关注我们

如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:

我们的微信公众号

翻译

我们提供了英文版原文和中译版(本文)。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!