news 2026/6/10 11:41:40

蓝易云 :Docker创建Consul并添加权限控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
蓝易云 :Docker创建Consul并添加权限控制

下面给你一套可直接落地的方案:用Docker Compose启动Consul 单节点,并开启<span style="color:#e53935">ACL 权限控制</span>(默认拒绝,按需放行)。目标是:最小暴露面、可审计、可回滚。🛡️


原理解释表(先把权限模型吃透)

组件作用你需要关心的点
<span style="color:#e53935">ACL</span>权限体系开关开启后建议<span style="color:#e53935">default_policy=deny</span>
<span style="color:#e53935">Management Token</span>超级管理员令牌只能少数人保管,禁止硬编码进镜像/仓库
<span style="color:#e53935">Policy</span>权限规则集合用最小权限:只读、只写、限定前缀
<span style="color:#e53935">Token</span>给应用/人用的凭证Token 绑定 Policy;应用只拿自己那份

1) 准备目录与配置(建议按这个结构)

mkdir -p consul/{data,config,policies}

解释:

  • data/存 Consul 数据(KV、状态、Raft 等),容器重启不丢。

  • config/consul.hcl配置文件,便于版本化管理。

  • policies/放权限规则文件,做到“规则即代码”。✅


2) 写 Consul 配置:开启 ACL、默认拒绝(关键)

把下面内容保存为:consul/config/consul.hcl

datacenter = "dc1" data_dir = "/consul/data" server = true bootstrap_expect = 1 client_addr = "0.0.0.0" ui_config { enabled = true } acl { enabled = true default_policy = "deny" enable_token_persistence = true } log_level = "INFO"

解释:

  • server=true + bootstrap_expect=1:单节点自举(适合测试/小型场景)。

  • client_addr=0.0.0.0:容器内对外监听;是否映射到公网由 Compose 决定。

  • ui_config.enabled=true:开启 UI(UI 也会受 ACL 控制)。

  • acl.enabled=true:打开权限系统。

  • <span style="color:#e53935">default_policy=deny</span>没有授权就拒绝,这是安全基线。

  • enable_token_persistence=true:Token 持久化,重启后策略不“失忆”。🔒


3) Docker Compose 启动 Consul

保存为:docker-compose.yml

services: consul: image: hashicorp/consul:latest container_name: consul command: ["agent","-config-file=/consul/config/consul.hcl"] volumes: - ./consul/data:/consul/data - ./consul/config:/consul/config:ro - ./consul/policies:/consul/policies:ro ports: - "8500:8500" - "8600:8600/udp" restart: unless-stopped

解释:

  • command agent -config-file=...:明确从配置文件启动,避免参数散落。

  • :ro:配置与策略只读挂载,减少被容器内误改的风险。

  • 8500:HTTP API + UI;8600/udp:DNS 接口(如需服务发现)。

  • <span style="color:#e53935">安全建议</span>:生产环境尽量不要把 8500 映射到公网,优先内网/堡垒机访问。⚠️

启动:

docker compose up -d docker logs -f consul

解释:

  • up -d:后台启动。

  • logs -f:盯启动日志,确保无配置错误(这是最快验收点)。✅


4) 初始化 ACL(生成管理员 Token)

docker exec -it consul consul acl bootstrap

解释:

  • 这是一次性初始化命令,会输出<span style="color:#e53935">SecretID</span>(管理员 Token)。

  • 这个 Token 是“钥匙串总钥匙”,务必离线保存;别写进 compose、别发群里。🧯


5) 创建最小权限 Policy + 发放应用 Token

先写规则文件:consul/policies/app-read-kv.hcl

key_prefix "app/" { policy = "read" } service_prefix "" { policy = "read" }

解释:

  • key_prefix "app/":只允许读取app/这个前缀下的 KV(避免全库可见)。

  • service_prefix "" read:允许读取服务信息(服务发现常用)。

  • 这就是典型的<span style="color:#e53935">最小权限</span>。✅

创建 Policy(把<MGMT_TOKEN>换成你刚拿到的管理员 Token):

docker exec -it consul consul acl policy create \ -name "app-read-kv" \ -rules @/consul/policies/app-read-kv.hcl \ -token <MGMT_TOKEN>

解释:

  • policy create:把规则注册进 Consul。

  • -rules @文件:从文件导入,便于审计与回滚。

  • -token:用管理员 Token 执行管理操作。

签发应用 Token:

docker exec -it consul consul acl token create \ -description "token for app" \ -policy-name "app-read-kv" \ -token <MGMT_TOKEN>

解释:

  • 输出里会有应用侧要用的<span style="color:#e53935">SecretID</span>

  • 应用访问时设置环境变量CONSUL_HTTP_TOKEN=<SecretID>即可(建议用 Docker secret / 环境注入,避免明文落盘)。🔐


交付级“流程脑图”(vditor/Markdown 可直接贴)

Consul(容器) ├─ 启动 agent(读取 consul.hcl) ├─ 开启 ACL(default deny) ├─ bootstrap 生成 管理员Token ├─ 创建 Policy(最小权限) └─ 创建 应用Token(绑定Policy) → 应用带 Token 访问

如果你要做多节点集群 + Gossip 加密 + UI 不暴露公网 + Token 自动注入到你的微服务,我也能按你现网拓扑给一份“生产级 Compose/配置模板”(含隔离网络与回滚点)。你只需要告诉我:单机还是 3 节点、是否需要跨宿主机通信、以及要控制的资源(KV/Service/Session 哪些要读写)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 16:41:01

欧姆龙 CP1E 与四台 E700 变频器通讯那些事儿

欧姆龙cp1e通讯四台E700配套程序资料 视频即效果&#xff0c;硬件使用cp1e-N30S1DT-D,四台E700变频器。 功能实现四台变频器的正反转停止&#xff0c;频率给定。 输出频率&#xff0c;电压&#xff0c;状态的读取。 其它变频器支持modbus rtu协议也可使用&#xff0c;百度包括p…

作者头像 李华
网站建设 2026/6/10 12:39:54

Linux 命令行参数与环境变量实战:从基础用法到底层原理

Linux 命令行参数与环境变量实战&#xff1a;从基础用法到底层原理 &#xff08;2026 年视角&#xff0c;结合 bash / C/C / Go 等常见场景&#xff0c;带代码示例 常见坑 推荐实践&#xff09; 1. 整体流程图&#xff08;从敲命令到程序拿到数据&#xff09; 用户在 shell…

作者头像 李华
网站建设 2026/6/9 16:05:28

鸿蒙HarmonyOS 6应用开发:从零基础到App上线

鸿蒙 HarmonyOS 6 应用开发&#xff1a;从零基础到 App 上线 &#xff08;2026 年最新实战路线图&#xff0c;基于 HarmonyOS NEXT 纯血版 DevEco Studio 6.0&#xff0c;覆盖官方最新能力&#xff09; 2026 年&#xff0c;HarmonyOS 6&#xff08;也称 HarmonyOS NEXT 第二个…

作者头像 李华
网站建设 2026/6/10 12:42:08

导师推荐8个降AIGC工具,千笔AI助你轻松降AI率

AI降重工具&#xff1a;让论文更自然&#xff0c;让学术更纯粹 在当前学术写作环境中&#xff0c;AIGC&#xff08;人工智能生成内容&#xff09;的广泛应用为论文创作带来了便利&#xff0c;但也带来了“AI痕迹明显”“查重率偏高”的挑战。对于MBA学生而言&#xff0c;如何在…

作者头像 李华