使用全局黑名单的 Consul ACL 仍然使用匿名令牌列出 services/nodes
Consul ACLs using a global blacklist still lists services/nodes with anonymous token
像这样配置 consul-server 时:
{
"acl_datacenter": "stable",
"acl_default_policy": "deny",
"acl_down_policy": "deny"
"datacenter": "stable",
"data_dir": "/consul/data",
"ui": true,
"log_level": "INFO",
"node_name": "consul",
"client_addr" : "0.0.0.0",
"server": true,
"bootstrap": true,
"encrypt":"GdKfGQLlnziTxh/Vt4DW4A==
"acl_master_token:"474238df-2199-4e67-a1e6-638bdb8f6740"
}
所以对所有内容都使用黑名单,我仍然可以列出所有服务
curl http://consul:8500/v1/catalog/services
{"consul":[]}%
不提供令牌 - 所以使用匿名令牌。即使我添加了一个明确的规则(不需要)
service "" {
policy="deny"
}
还是一样的结果。列出节点和其他任何东西也是如此。我无法列出任何 KV - 所以这是安全的(或添加任何带有匿名令牌的 ACL)。
问题
- 为什么黑名单允许列出服务/节点?
- 有没有办法
否认这一点?
元信息
consul --version
Consul v0.6.4
Consul Protocol: 3 (Understands back to: 1)
答案分为 2 个分支
服务
Listing服务被ACL拒绝,consul服务异常。所以其他所有服务都不会出现
来源https://twitter.com/slackpad/status/750322795704352768
节点
ACL还没有应用到节点上,因此你暂时不能使用ACL保护节点上的窥探。参见
像这样配置 consul-server 时:
{
"acl_datacenter": "stable",
"acl_default_policy": "deny",
"acl_down_policy": "deny"
"datacenter": "stable",
"data_dir": "/consul/data",
"ui": true,
"log_level": "INFO",
"node_name": "consul",
"client_addr" : "0.0.0.0",
"server": true,
"bootstrap": true,
"encrypt":"GdKfGQLlnziTxh/Vt4DW4A==
"acl_master_token:"474238df-2199-4e67-a1e6-638bdb8f6740"
}
所以对所有内容都使用黑名单,我仍然可以列出所有服务
curl http://consul:8500/v1/catalog/services
{"consul":[]}%
不提供令牌 - 所以使用匿名令牌。即使我添加了一个明确的规则(不需要)
service "" {
policy="deny"
}
还是一样的结果。列出节点和其他任何东西也是如此。我无法列出任何 KV - 所以这是安全的(或添加任何带有匿名令牌的 ACL)。
问题
- 为什么黑名单允许列出服务/节点?
- 有没有办法 否认这一点?
元信息
consul --version
Consul v0.6.4
Consul Protocol: 3 (Understands back to: 1)
答案分为 2 个分支
服务
Listing服务被ACL拒绝,consul服务异常。所以其他所有服务都不会出现
来源https://twitter.com/slackpad/status/750322795704352768
节点
ACL还没有应用到节点上,因此你暂时不能使用ACL保护节点上的窥探。参见