Etcd v2以上的版本才支持权限认证,且仅支持Basic Authnginx
Etcd经过用户(user)-角色(role)-权限的方式来控制访问,用户关联角色,角色拥有权限,从而用户也就拥有了相应的权限安全
Etcd默认没有启用认证机制,只要能链接etcd服务就拥有全部的权限,仍是很是危险的,另外一种安全的访问方式是开启ssl,只有使用受信任的证书才能访问数据spa
Etcd开启Basic Auth以后,默认会启用两个角色root和guest,root角色拥有全部权限,guest拥有只读权限,这两个角色都不要删除,不然你可能会遇到意想不到的Bug设计
Etcd的权限分为只读、只写、可读写,能够对etcd的详细key进行受权,例如:/conf/project/dev/nginx.conf,也能够受权key前缀(目录),例如:/conf/project/,受权规则应以最小知足需求为准则ssl
权限设计应先考虑咱们对权限的需求,从需求出发设计权限配置
需求权限
为了方便后续管理,规定配置中心全部key都应已/conf/开头数据
须要两个帐号,一个帐号用在Kerrigan(WebUI)拥有读取、写入、修改、删除key的权限,一个帐号用在confd,只有只读的权限,可以读取配置就能够了证书
设计auth
需求很简单,咱们须要创建两个帐号,分别对应两个角色,两个角色都是对/conf/开头的Key进行控制,一个读写权限,一个只读权限
定义只读帐号名为readx,只读角色名为readConf,定义读写权限帐号名为authz,读写权限为rootConf,可操做的key都为/conf/开头