我想将Consul用于服务发现,并用作我的微服务的分布式配置。没有任何安全性,我的系统运行良好,但是我不希望每个用户都可以更改键值存储中的值。因此,我尝试通过Consul的ACL引入安全性,但是现在我的服务无法再进行自我注册。
我将HCL配置中的默认策略设置为“拒绝”,并尝试为每个服务设置写策略,以便它们可以在Consul注册自己,并为键值存储区注册读策略,因此这些值只能通过UI读取。但是我的服务在注册过程中收到403。
agent.hcl
service_prefix "" {
policy = "write"
}
key_prefix "" {
policy = "read"
}
consul-policy.hcl
service_prefix "" {
policy = "write"
}
key_prefix "" {
policy = "read"
}
我通过以下方式启动服务器:
consul agent -config-file agent.hcl -dev
并添加了策略(获取并设置ACL令牌后):
consul acl policy create -name consul-server-one -rules @consul-policy.hcl
答案 0 :(得分:0)
我想念的是您需要为策略生成令牌的事实。
consul acl token create -description "Token description" -policy-name "consul-server-one" -token "(your global token)"
我想使用可以通过以下方式设置的默认令牌:
consul acl set-agent-token -token "(your global token)" default (your generated token)