Consul ACL访问权限控制

提前准备

环境:Linux系统
版本:V1.6.2
下载:https://www.consul.io/downloads.html
配置文件:config-acl.json

{
    "datacenter":"tencent-datacenter",
    "data_dir":"/usr/local/consul-1.6.2/data",
    "log_file":"/usr/local/consul-1.6.2/log/",
    "log_level":"INFO",
    "bind_addr":"0.0.0.0",
    "client_addr":"0.0.0.0",
    "node_name":"tencent-node",
    "ui":true,
    "bootstrap_expect":1,
    "server":true,
    "acl":{
        "enabled":true,
        "default_policy":"deny",
        "enable_token_persistence":true,
        "enable_key_list_policy":true
    }
}
  • acl.enabled:开启acl
  • acl.default_policy:策略,deny - 默认是拒绝;allow - 默认是允许的
  • acl.enable_token_persistence:允许持久化token
  • acl. enable_key_list_policy:允许KV的递归操作

启动Consul:./consul agent -config-file=config-acl.json

ACL使用场景
  • Agent的访问控制
  • Service服务注册/发现访问控制
  • KV访问控制
ACL使用步骤
一、初始化Consul ACL

bash: consul acl bootstrap
生成信息如下(保存这些信息):

AccessorID:       xxxx-xxxx-xxxx-xxxx-xxxx
SecretID:         xxxx-xxxx-xxxx-xxxx-xxxx
Description:      Bootstrap Token (Global Management)
Local:            false
Create Time:      2019-12-23 12:06:53.799083966 +0800 CST
Policies:
   00000000-0000-0000-0000-000000000001 - global-management

执行该命令生成的AccessorID和SecretID是拥有最高权限的。

二、配置规则

浏览器访问:localhost:8500,ACL选项卡中输入上面的SecretID,然后会看到以下页面。
在这里插入图片描述
默认Policy:global-management,这个是拥有最高权限的SecretID,等于超级管理员。

AccessorID:访问ID。唯一对应有一个token,点击记录进去即可看到
Scope:作用范围
Roles & Policies:拥有权限或者策略,AccessorID通过关联不同角色和策略来控制访问权限

以下列举几个策略Policy的案例:
1)服务策略

service_prefix "" {
  policy = "write"
}

以上策略表示所有服务可写
具体策略参考:service-rules

2)KV策略

key_prefix "" {
 policy = "list"
}
key_prefix "" {
 policy = "write"
}
key_prefix "config/" {
 policy = "read"
}

第一个:表示所有KV可执行递归的 list 操作,该选项前提必须配置文件指定了"enable_key_list_policy":true后方可生效。
第二个:所有KV可执行写操作。
第三个:以config/开头的key可执行读操作。

具体策略参考:key-value-rules

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Consul ACL(Access Control List)是Consul中用于配置和管理访问控制的功能。引用中提到了配置ACL的步骤,包括在各节点启动时启用ACL,并在配置文件夹目录中添加acl.hcl文件。这个文件包含了ACL的配置信息,如启用ACL、默认策略、令牌持久化等。通过重新启动节点,ACL的配置就会生效。 引用中提到了根据规则文件生成策略的步骤。在Consul中,可以通过创建策略来定义ACL的规则。可以使用命令行工具consul acl policy create来创建策略,并指定策略的名称、规则文件和对应的权限令牌。这样就可以为不同的访问需求创建不同的策略。 另外,引用提到了AWS SSM参数引导和管理Consul ACL的实用程序。这个工具可以让您安全地从AWS SSM中存储ACL定义和令牌ID,并简化在多环境场景中引导ACL的过程。 所以,Consul ACL是用于配置和管理Consul访问控制的功能,它可以通过配置文件和命令行工具来实现。同时,AWS SSM参数也提供了方便的管理工具来简化ACL的引导和管理过程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [consul--基础--06--ACL](https://blog.csdn.net/zhou920786312/article/details/127738110)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [consulssm:通过AWS SSM参数引导和管理Consul ACL](https://download.csdn.net/download/weixin_42162171/18299398)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值