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/開頭