1、consul配置文件目录下新增配置文件acl.json 内容如下(实际使用时,将注释删除才可使用)
{
"acl_datacenter": "dc1", //需要acl配置的数据中心 一般默认是dc1 除非启动时指定了 data-center配置
"acl_master_token": "********", //这个是随机生成的字符串,不要含有 + 号和空格 以及一些会引起base64问题的字符
"acl_default_policy": "deny", //默认策略所有的都禁止
"acl_down_policy": "extend-cache"
} |
2、重启consul server后发现所有服务无法连接,需要配置token
此处我们生产一个次级权限的token,用于管理各个节点
curl \
--request PUT \
--header "X-Consul-Token: 上面配置的master_token" \
--data \
'{
"Name": "Agent Token",
"Type": "client",
"Rules": "node \"\" { policy = \"write\" } service \"\" { policy = \"read\" }"
}' http://127.0.0.1:8500/v1/acl/create
#获取改请求返回的token
#服务端配置acl.json新增一个节点 "acl_agent_token": "4ac10325-551b-5465-05e0-e0a48a04971a"
#客户端配置acl.json
{
"acl_agent_token": "4ac10325-551b-5465-05e0-e0a48a04971a",
"acl_datacenter": "dc1",
"acl_down_policy": "extend-cache"
} |
重启server和client之后即可访问
3、在ui管理界面的acl里面根据权限配置 master_token 或 agent_token
4、此时bash中的consul将无法使用,需配置环境变量 export CONSUL_HTTP_TOKEN=#上面的随机字符串master_token#
注:若有service的json配置 需要加入token子节点 配置拥有manament权限的token
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)