consul自带ACL控制功能,看了很多遍官方文档,没有配置步骤https://www.consul.io/docs/internals/acl.html 主要对各种配置参数解释,没有明确的步骤,当时唯一疑惑的是怎样生成ACL规则。看了很多相关的blog都是相似的内容,都是基础的安装测试而已,没有提到具体配置ACL,估计更多的只是实验尝试而已,没有涉及ACL配置使用。后来有辛搜到了一片文章才恍然大悟,明白ACL配置是怎么回事了,http://qiita.com/yunano/items/931448a590c7f346ed01。我之后是这样配置的:
1、对数据中心的每个server,添加acl_config.json配置:

{
  "acl_datacenter""datacenter-tag",
  "acl_master_token""xxxxxxxxxx9cda01",
  "acl_default_policy""deny"
}

这3个参数每个server模式的node都必须有。相关参数解释官方文档都有,https://www.consul.io/docs/agent/options.html
acl_default_policy默认值值是allow,即能够执行任何操作,这里需要关闭。
acl_master_token需要在每个server上配置,有management级别的权限,相当于一个种子token。
acl_datacenter区域的标识。
2、通过API接口 /v1/acl/create 创建一个management用户用于管理token的权限分配,这里生成这个management级别的token需要之前配置文件里面的种子token。

curl -H "X-Consul-Token: secret"  -X PUT -d '{"Name": "datacenter-tag", "Type": "management"}'  http://127.0.0.1:8500/v1/acl/create?token=xxxxxxxxxx9cda01
{"ID":"xxxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxx"}

3、可以将这个management权限的token配置在ui节目管理的节点上,便于管理ACL、k/v、service等(但是我没有这么干,不然这个node的权限太大,不便于控制)。

{
  "acl_datacenter""datacenter-tag",
  "acl_master_token""xxxxxxxxxxx9cda01",
  "acl_token""b9exxxxx-xxxx-xxxx-xxx-xxxxxxxxxx291ba",
  "acl_default_policy""deny"
}

现在就可以通过ui界面管理token的权限分配了(制订ACL规则)。

4、合理分配token的权限(制定ACL规则),官方文档有一例分配说明:

# Default all keys to read-only
key "" {
  policy = "read"
}
key "foo/" {
  policy = "write"
}
key "foo/private/" {
  # Deny access to the dir "foo/private"
  policy = "deny"
}
# Default all services to allow registration. Also permits all
# services to be discovered.
service "" {
    policy = "write"
}
# Deny registration access to services prefixed "secure-".
# Discovery of the service is still allowed in read mode.
service "secure-" {
    policy = "read"
}
# Allow firing any user event by default.
event "" {
    policy = "write"
}
# Deny firing events prefixed with "destroy-".
event "destroy-" {
    policy = "deny"
}
# Default prepared queries to read-only.
query "" {
    policy = "read"
}
# Read-only mode for the encryption keyring by default (list only)
keyring = "read"

API注册ACL规则用JSION数据格式:

{
  "key": {
    "": {
      "policy""read"
    },
    "foo/": {
      "policy""write"
    },
    "foo/private": {
      "policy""deny"
    }
  },
  "service": {
      "": {
          "policy""write"
      },
      "secure-": {
          "policy""read"
      }
  },
  "event": {
    "": {
      "policy""write"
    },
    "destroy-": {
      "policy""deny"
    }
  },
  "query": {
    "": {
      "policy""read"
    }
  },
  "keyring""read"
}

创建好ACL后,将生成的acl_token xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx 配置到每个agent,除了那个ui的server节点,当然这个节点也可以配置这个token,只是权限没有那么大了,管理不是很便捷。
client节点的acl_config.json配置:

{
  "acl_datacenter""datacenter-tag",
  "acl_token""xxxxxx-4bf0-xxxx-2079-xxxxxxxxx"
}

server节点的acl_config.json配置(UI的server节点除外):

{
  "acl_datacenter""datacenter-tag",
  "acl_master_token""xxxxxxxxxxxxxxxxx",
  "acl_token""xxxxxxx-xxxx-xxxx-2079-xxxxxxxxxx",
  "acl_default_policy""deny"
}

测试ACL是否生效:

[root@xx-xx-xxxx ~]# curl -X PUT -d 'test' http://127.0.0.1:8500/v1/kv/web/key1
rpc error: Permission denied
[root@xx-xx-xxxx ~]#
[root@xx-xx-xxxx ~]# curl -X PUT -d 'test' http://127.0.0.1:8500/v1/kv/foo/key1
true

虽然分享了知识但也得为安全考虑,文章中所有敏感信息均已处理,比如token都是未知或无效的等。

转载于:https://www.cnblogs.com/duanxz/p/9663582.html

consul之:ACL配置使用相关推荐

  1. 运维小姐姐说这篇Consul集群和ACL配置超给力(保姆级)

    前言 上一篇简单介绍了Consul,并使用开发模式(dev)进行流程演示,但在实际开发中需要考虑Consul的高可用和操作安全性,所以接着来聊聊集群和ACL的相关配置,涉及到的命令会在环境搭建过程中详 ...

  2. Consul集群配置

    Consul集群配置 consul原理 上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端.consul客户端不保存数据,客户端将接收到 ...

  3. h3c 3600 acl 配置 滤源IP是网关的ARP报文的ACL规则

    h3c 3600 acl 配置 滤源IP是网关的ARP报文的ACL规则 悬赏分:100 - 解决时间:2009-3-8 14:30 星号之间是我在网上查到的华为交换机的配置方法: ********** ...

  4. 命名式ACL配置实例

    命名式ACL配置实例 稍微大一些的企业在网络管理中就要经常用到命名式的ACL配置.由于企业部门的分化,不同的部门需要不同ACL规则.其实配置ACL非常简单,首先命名一个ACL,然后进入将你所需要的AC ...

  5. 华为交换机ACL配置

    华为交换机ACL配置 一.网络环境 1.网络拓扑 2.网络互通链接 二.ACL要求 三.ACL实施 1.部门A禁止访问部门B 2.服务器区域ACL配置 3.部门D不能访问部门C 一.网络环境 1.网络 ...

  6. consul宕机配置丢失_简单的配置死机

    consul宕机配置丢失 编写整个框架的目的是为了处理应用程序的配置. 我更喜欢一种简单的方法. 如果通过配置来表示" 部署之间可能有所不同的所有内容 ",那么我们应该尝试使配置保 ...

  7. 华为acl怎么生效_华为ACL配置教程(一)

    一.ACL基本配置 1.ACL规则生效时间段配置(需要先配置设备的时间,建议用ntp同步时间) 某些引用ACL的业务或功能需要限制在一定的时间范围内生效,比如,在流量高峰期时启动设备的QoS功能.用户 ...

  8. 由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。...

    场景:IIS中遇到无法预览的有关问题(HTTP 异常 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置 IIS中遇到无法预览的问题(HTTP ...

  9. 华为路由器 基本ACL配置

    1.什么是ACL? 访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合.所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址.目的地址.端口号等. ...

最新文章

  1. [采坑记录] OneDrive同步失败 不能自动上传 不能同步 不能登陆
  2. 字体外面怎么加边框_字体处理的6种方法,解决ppt种字体不突出的问题
  3. 正三角形的外接圆面积
  4. zookeeper管理mysql_Mysql系列九:使用zookeeper管理远程Mycat配置文件、Mycat监控、Mycat数据迁移(扩容)...
  5. Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx
  6. Win11 在线安装QT5.15.2教程
  7. 如何在工作中设定和使用 SMART 目标
  8. wordpress启动_使用Wumblr在WordPress中启动微博
  9. matlab表达式比未知数多,matlab求解未知数
  10. 力扣第四十六题(全排列)详解
  11. ARM M3小计(一)1~3章。
  12. centos8显示网络连接激活失败
  13. import 出现 Illegal instruction错误
  14. Mybatis的配置文件参数详解
  15. 2022-2027年中国纤维素生物燃料行业市场全景评估及发展战略规划报告
  16. SqlServer处于恢复挂起状态
  17. MCAL系列介绍03-ADC
  18. Java常用工具类库
  19. SUNDE桌面云推动班班通工程建设步伐
  20. (转)常用建站参考网站大本营

热门文章

  1. Open suse下 vi 语法加亮设置 显示
  2. MvcPager帮助文档 - MvcAjaxOptions 类
  3. Linux基础命令介绍
  4. js获取当前日期方法
  5. springboot 远程日志
  6. 基于遗传算法实现自动组卷
  7. Linux 相关发音
  8. CodeSmith 4.0 正式版发布
  9. ORACLE 数据库性能 与裸设备
  10. 倒计时的CountDownTimer