Etcd安全配置之Basic Auth認證

2021-08-27 23:40:32 字數 1077 閱讀 2785

《中小團隊落地配置中心詳解》文章中我們介紹了如何基於etcd+confd構建配置中心,最後提到etcd的安全問題時說了可以使用賬號密碼認證以達到安全訪問的目的,究竟該如何開啟認證以及怎麼設計許可權訪問呢?本文將為你詳細解讀

etcd v2以上的版本才支援許可權認證,且僅支援basic auth

etcd通過使用者(user)-角色(role)-許可權的方式來控制訪問,使用者關聯角色,角色擁有許可權,從而使用者也就擁有了相應的許可權

etcd預設沒有啟用認證機制,只要能連線etcd服務就擁有所有的許可權,還是非常危險的,另一種安全的訪問方式是開啟ssl,只有使用受信任的證書才能訪問資料

etcd開啟basic auth之後,缺省會啟用兩個角色root和guest,root角色擁有所有許可權,guest擁有唯讀許可權,這兩個角色都不要刪除,否則你可能會遇到意想不到的bug

etcd的許可權分為唯讀、只寫、可讀寫,可以對etcd的詳細key進行授權,例如:/conf/project/dev/nginx.conf,也可以授權key字首(目錄),例如:/conf/project/,授權規則應以最小滿足需求為準則

許可權設計應先考慮我們對許可權的需求,從需求出發設計許可權

為了方便後續管理,規定配置中心所有key都應已/conf/開頭

需要兩個賬號,乙個賬號用在kerrigan(webui)擁有讀取、寫入、修改、刪除key的許可權,乙個賬號用在confd,只有唯讀的許可權,能夠讀取配置就可以了

需求很簡單,我們需要建立兩個賬號,分別對應兩個角色,兩個角色都是對/conf/開頭的key進行控制,乙個讀寫許可權,乙個唯讀許可權

定義唯讀賬號名為readx,唯讀角色名為readconf,定義讀寫許可權賬號名為authz,讀寫許可權為rootconf,可操作的key都為/conf/開頭

在開啟認證後發現系統預設給新增了guest角色,覺得guest角色沒用就給刪除了,於是再連線etcd集群時就報如下錯誤:

報錯:the request requires user authentication (insufficient credentials)

解決:重新新增guest角色

Etcd安全配置之Basic Auth認證

etcd通過使用者 user 角色 role 許可權的方式來控制訪問,使用者關聯角色,角色擁有許可權,從而使用者也就擁有了相應的許可權 etcd預設沒有啟用認證機制,只要能連線etcd服務就擁有所有的許可權,還是非常危險的,另一種安全的訪問方式是開啟ssl,只有使用受信任的證書才能訪問資料 etcd...

LANMP安全配置之MySQL安全配置

上週學習了一下lanmp安全配置之apache安全配置 用的最多的資料庫就是mysql了 所以這周繼續學習一下mysql安全配置 還是參考 php web安全開發實戰 一書,再做一些補充 安裝成功後第一件事就是改root預設密碼,然後設定複雜密碼 在了解許可權分配之前 先了解以下mysql下的幾個控...

LANMP安全配置之Nginx安全配置

比起前幾篇的apache安全配置 php安全配置 mysql安全配置,對nginx的了解巨少,沒怎麼用過除了知道nginx解析漏洞就啥也不知道了 好了,開始學習 1.1 更改預設使用者名稱 nginx預設nobody,可更改預設使用者名稱防止他人利用 1.2 新增使用者 1 新增組 groupadd...