acl - Consul 0.8 ACL 迁移 - 如何迁移

标签 acl consul

TLTR 如何将0.8之前的ACL权限迁移到0.7.3?

当前设置 我当前正在运行启用 ACL 的 Consul 0.7.3 堆栈。

在 Consul 0.8 中,ACL 最终还将包括服务和节点,因此节点/服务 (Consul) 不再向匿名用户显示。这正是我所需要的。今天我尝试使用 https://www.consul.io/docs/agent/options.html#acl_enforce_version_8 启用新的 ACL“pre 0.8”

这样做之后,我的节点无法再针对主节点进行身份验证(如果身份验证根本就是问题所在)。

我运行 consul-network 并启用了 gossip,我配置了 acl_master_token:

"{acl_master_token":"<token>}"

以及代理的 token :

"{acl_token":"<token>}"

所有代理都使用/配置的。

我有这些 ACL 默认值:

{
 "acl_datacenter": "stable",
 "acl_default_policy": "deny",
 "acl_down_policy": "deny"
}

我的 Consul 配置如下所示:

{
  "datacenter": "stable",
  "data_dir": "/consul/data",
  "ui": true,
  "dns_config": {
    "allow_stale": false
  },
  "log_level": "INFO",
  "node_name": "dwconsul",
  "client_addr" : "0.0.0.0",
  "server": true,
  "bootstrap": true,
  "acl_enforce_version_8": true
}

发生了什么 当我启动时,我根本看不到使用我的 token 的节点/服务,节点/代理都无法在主服务器上注册,

问题 获得以下内容究竟需要什么:

  • 所有代理都可以看到所有节点、所有服务和所有 KV
  • Anonymous 什么也看不到,看不到 KV、服务或节点(这就是 0.8 可能实现的功能)

我查看了https://www.consul.io/docs/internals/acl.html “ACL Changes Coming in Consul 0.8”但我无法理解它。我现在应该使用 https://www.consul.io/docs/agent/options.html#acl_agent_master_token而不是 acl_token?

感谢您的帮助。我想我不会是唯一一个对这条移民道路和这种特殊兴趣感兴趣的人,很多人对此感兴趣。你帮助了所有人:)

最佳答案

看起来新的节点策略正在阻止节点正确注册。这应该可以解决问题:

  1. 在 Consul 服务器上使用 acl_agent_token 配置它们,该 token 具有可以写入任何节点的策略,如下所示:node ""{policy = "write"}.

  2. 在您的 Consul 代理上,为它们配置与服务器类似的配置以保持开放,或者您可以为它们提供一个具有更具体策略的 token ,仅允许它们写入某些允许的前缀。

请注意,这被设置为用于内部注册操作的acl_agent_tokenacl_agent_master_token 用作紧急 token ,以便在 Consul 服务器出现问题时使用/v1/agent API,但它仅适用于/v1/agent API。

对于“所有代理都可以看到所有节点、所有服务和所有 KV”,您可以向通过 acl_token 向代理提供的任何 token 添加节点读取权限,因此您可以添加像这样的政策:

node "" { policy = "read" }
service "" { policy = "read" }
key "" { policy = "read" }

请注意,这允许任何有权访问代理客户端界面的人读取所有这些内容,因此您需要小心绑定(bind)的内容(通常仅环回)。或者根本不设置 acl_token 并让调用者在每个请求中传递一个 token 。

关于acl - Consul 0.8 ACL 迁移 - 如何迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41968048/

相关文章:

acl - Mosquitto 身份验证插件 ACL 检查不会被调用订阅

docker - 在 .net 核心应用程序中获取 Docker 容器 IP

java - 领事健康检查员

docker - 带Consul的Docker Swarm-经理不选择主要

hadoop setfacl --设置不起作用

acl - 我可以修改 vagrant 中共享文件夹的所有权吗?

Symfony2 - AccessDecisionManager 使用的安全投票者的优先级设置如何?

consul - Prometheus:如何根据 Consul 标签删除目标

Consul集群未启动

inheritance - Symfony 3-ACL parent /子女关系