Etcd安全配置之Basic Auth認證

2021-09-20 05:52:36 字數 2510 閱讀 5124

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/,授權規則應以最小滿足需求為準則

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

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

# etcdctl user add root

new password: 12345

user root created

# etcdctl user get root

user: root

roles:  root

# etcdctl role get root

role: root

kv read:

/*kv write:

/*

# etcdctl auth enable

authentication enabled

開啟許可權認證後缺省會多乙個guest的角色

# etcdctl --username root:12345 role list

guest

root

# etcdctl --username root:12345 user add authz

new password: 

user authz created

# etcdctl --username root:12345 user add readx

new password: 

user readx created

# etcdctl --username root:12345 role add rootconf

role rootconf created

# etcdctl --username root:12345 role add readconf

role readconf created

# etcdctl --username root:12345 role grant --read --path /conf/* readconf

role readconf updated

# etcdctl --username root:12345 role grant --readwrite --path /conf/* rootconf

role rootconf updated

# etcdctl --username root:12345 user grant --roles rootconf authz

user authz updated

# etcdctl --username root:12345 user grant --roles readconf readx

user readx updated

# etcdctl --username root:12345 user get authz

user: authz

roles:  rootconf

# etcdctl --username root:12345 user get readx

user: readx

roles:  readconf

#

etcdctl --username root:12345 auth disable

# etcdctl --username root:12345 user remove userx

# etcdctl --username root:12345 user revoke rolex

# etcdctl --username root:12345 user passwd

原文發布時間為:2018-09-12

Etcd安全配置之Basic Auth認證

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

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...