consul之:ACL配置使用

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是否生效:

[[email protected] ~]# curl -X PUT -d ‘test‘ http://127.0.0.1:8500/v1/kv/web/key1

rpc error: Permission denied

[[email protected] ~]#

[[email protected] ~]# 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

时间: 2024-11-07 01:40:51

consul之:ACL配置使用的相关文章

标准acl配置

首先是标准的acl配置 先把路由器各个端口的网关配好 接着按要求配置acl:pc0只允许pc2访问,pc3不允许172.16.3.0的网段的主机访问 标准acl练习题2 首先先配置第一个路由器router0的各个端口IP地址 接着再配置另一个路由器router1各个端口的IP地址 两个路由器的端口IP地址配好后,接着就配置OSPF协议 OSPF协议配置好后,才能互相通信,接着就按要求配置acl 接着测试

IIS中遇到无法预览的问题(HTTP 错误 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。)

在IIS中  依次执行如下操作: 网站--编辑权限--共享(为了方便可以直接将分享对象设置为everyone)--安全(直接勾选 everyone )--应用--确定. IIS中遇到无法预览的问题(HTTP 错误 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面.)

IPv6 的ACL配置及注意点

IPv6ACL规则如下: 1 只能使用命名的ACL 2 ACL序号匹配由小到大 3 默认情况下,隐含permit icmp any any nd-na 和permit icmp anyany nd-ns 用于邻居发现协议的邻居通告和邻居请求,允许接口发送和接收IPv6邻居发现包. 3 结尾默认隐含 deny ipv6 any any 4 使用命令ipv6 traffic-filter应用于接口的in or out方向 需求:在R1配置ACL,禁止R1的环回接口访问R4的环回接口地址: ACL配置

交换机ACL配置

这里的CLI以今天的DUT为准,可能跟思科的命令略有不同,不过大致思路还是相同的. 设置模式下以(conf)#表示,响应ACL模式下以(aclname)#表示,某个端口内的设置用(if-e0/1/1)表示 1.建立ACL: (conf)#access-list standard/extender [aclname] (aclname)# permit xxx (aclname)# deny xxx 针对三层的ACL设置可以选择standard或者extender,处于三层,那么仅涉及到IP和MA

扩展acl配置

首先原图和要求如下 首先对路由器进行网关的配置,然后对第二个要求进行验证 接下来就要求3进行扩展acl配置,然后验证 首先对第一个路由器进行IP配置和OSPF协议 接着对第二个路由器进行配置,然后验证要求2 接着对第一个路由器进行acl设置,然后验证 接下来再做第三道题 先对三层交换机设置vlan,配置IP地址,把端口加入vlan 接着验证要求2,记得三层交换机win7要在全局模式下ip routing 对三层交换机进行acl设置,然后验证 再做一道关于DNS的acl扩展配置 首先对三层交换机配

标准ACL配置小实验走起

实验要求 在R1路由上建立标准ACL,实现仅允许PC1能访问PC3,禁止PC2对PC3进行访问的功能. 具体配置 1.配置三台pc机地址.网关 PC1> ip 192.168.10.2 192.168.10.1 Checking for duplicate address... PC1 : 192.168.10.2 255.255.255.0 gateway 192.168.10.1 PC2> ip 192.168.10.3 192.168.10.1 Checking for duplicat

华为ACL配置

实验拓扑:   实验要求: 1.在华为设备上配置标准ACL实现vlan 10主机不能和vlan20主机互访,但可以正常上网. 2. 在华为设备上配置扩展ACL实现vlan 10主机不能和vlan 20主机互访,但可以正常上网:vlan 10中C2需要和vlan 20中C3通信,vlan 10中C1不能打开网页,其他不受影响: 3. 在华为设备上配置命名ACL实现路由器R1只能被192.168.1.10主机远程管理. ACL原理: 1.ACL是从上至下逐条匹配,一旦匹配成功则不再向下匹配. 2.A

【基础】华为设备基本和高级ACL配置实战

实验拓扑: 使用ENSP模拟器(版本V100R002C00 1.2.00.350)   实验要求: 1.在华为设备上配置标准ACL实现vlan 10主机不能和vlan20主机互访,但可以正常上网. 2. 在华为设备上配置扩展ACL实现vlan 10主机不能和vlan 20主机互访,但可以正常上网:vlan 10中C2需要和vlan 20中C3通信,vlan 10中C1不能打开网页,其他不受影响: 3. 在华为设备上配置命名ACL实现路由器R1只能被192.168.1.10主机远程管理. ACL原

openwrt-rpcd服务ACL配置错误风险分析

前言 openwrt 是一个用于的 路由器 的开源系统. 其他类似的路由器系统相比它的更新速度非常的快,可以看看 github 的更新速度 https://github.com/openwrt/openwrt 感觉以后用到 openwrt 的路由器会越来越多,而且 openwrt 可以直接用 vmware 来运行,也减少了学习的成本. 本文介绍一下 openwrt 的 ubus 机制 以及怎么利用 rpcd 通过 http 来访问 openwrt 里面的 ubus. 最后以一个 cve 为例介绍