像这样配置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)
答案 0 :(得分:0)
答案分为2个分支
ACL拒绝列出服务,但是对consul服务例外。所以其他所有服务都不会出现
来源https://twitter.com/slackpad/status/750322795704352768
ACL尚未应用于节点,因此您现在无法使用ACL保护节点上的间谍眼睛。参见