首页 > 服务配置 > consul的ACL规则用法
2017
05-10

consul的ACL规则用法

使用consul的ACL遇到些问题,比如

consul的ACL网址https://www.consul.io/docs/guides/acl.html 写的比较简单,下面再详细说明一下,简便起见,在ui下操作,下面是一主一从

server端运行进程为,可查看consul集群的服务注册发现和模板使用

上面的datacenter、acl_datacenter是随便命名的,acl_master_token是uuidgen | awk ‘{print tolower($0)}’生成,acl_master_token只有server端可以配置,是获取集群管理用的。server端运行起来了,可以tail -f nohup.out查看运行的日志,用nginx代理本地的8500端口,在ui界面的设置里面,填入上面的token,否则提示 access deny

consul的ACL规则用法 - 第1张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

填入token后其他选项就可以访问了,上面运行consul后面带有-atlas-token=XXX的参数,所以打开此页面就有,不过这里权限很大,需要保护好此页面的访问控制

consul的ACL规则用法 - 第2张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

ACL默认是有anonymous token、master token, anonymous的type是client,master的type是management

现在我们添加一个ACL,命名为client,rules里面写规则,规则其实比较简单,规则对象有:agent、event、key、keyring、node、operator、query、service、session。规则权限有:read、write、deny。

consul的ACL规则用法 - 第3张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

一般的rule写法如下:

规则对象 “” { policy = “read” }

规则对象 “某一个项目名称” { policy = “write” }

也就是所有请求都有访问的权限,只有特别的项目才有写入的权限。加完client这个策略后,我们设置agent:

acl_tokey这个选项一般是客户端设置的,acl_tokey的value就是上面添加的client的token,需要注意一点,agent上配置了acl_token,server端的配置文件也需要添加此行配置
我们现在查看命令或者curl发出请求都必须带上token:

现在测试一下,我们在client的rules加入key的权限设置,update

由于权限被拒绝。我们在ui界面的ACL,再给client的rule添加写权限,才可以post上去

现在ACL中client的rule如下:

consul的ACL规则用法 - 第4张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

总结一下,就是(server端)服务端先设置acl_master_token,作为服务端选举的令牌。在ui界面的ACL新建acl_tokey,并配置权限,然后在agent端应用此配置。

Summary
Article Name
consul acl rule usage
Description
acl_master_token acl_token的用法,acl_master_token acl_token之间的关系,以及创建rule和规则的指定。总结:(server端)服务端先设置acl_master_token,作为服务端选举的令牌。在ui界面的ACL新建acl_tokey,并配置权限,然后在agent端应用此配置。
Author
最后编辑:
作者:bbotte
这个作者貌似有点懒,什么都没有留下。

consul的ACL规则用法》有 1 条评论

  1. 衣皇后 说:

    衣皇后:

    百万张美女套图,上万部美女视频,一键转存,打包下载:

    http://www.wen.yihuanghou.com/

    衣皇后,等你来!

留下一个回复

你的email不会被公开。