自定义 Agent,KV,UI访问策略
翻译自: Secure Consul with Access Control Lists (ACLs)
转载请注明🙂,喜欢请一键三连哦 😊
上一节,我们有专门介绍最常用的Consul ACL控制Service 访问策略, 本节我们介绍其他场景的几个场景,限制 Agent,KV,UI的访问权限。
文章目录
一、定义Agent 访问策略
创建Agent Policy
创建一个策略,允许节点相关的操作有写权限,包含在Catalog注册自己,更新节点健康检查,有权限访问配置文件。
节点规则可参考:
## consul-server-one-policy.hcl
node "consul-server-one" {
policy = "write"
}
consul acl policy create \
-name consul-server-one \
-rules @consul-server-one-policy.hcl
创建Policy对应的Token
$ consul acl token create -description "consul-server-one agent token" \
-policy-name consul-server-one
Agent增加Token
consul acl set-agent-token agent "<agent token here>"
二、定义KV访问策略
创建Consul KV Token流程与Node,Service相似的。 但是KV可能会有各种各样的场景:
-
Service 可能需要访问配置数据中的KV数据;
-
可能会想存储Sessions分布式锁信息;
-
运维可能需要更权限取更新KV中的配置值;
KV规则包含四个策略级别: deny,write,read,and list。
下面分别介绍几种KV场景:
- 递归读
key_prefix "redis/" {
policy = "read"
}
- 指定Key写权限
包含创建Key, 删除Key,更新Key
key "dashboard-app" {
policy = "write"
}
- 指定Key的读权限
key "counting-app" {
policy = "read"
}
三、定义UI访问策略
UI策略生效步骤与Service策略是一样的,在此不展开,举一个策略例子,如:访问Service,Node, KV权限
## operator-ui.hcl
service_prefix "" {
policy = "read"
}
key_prefix "" {
policy = "read"
}
node_prefix "" {
policy = "read"
}