網(wǎng)站制作NEWS
k8s
在企業(yè)中,我們常常需要為開發(fā)者設(shè)置合理的權(quán)限以滿足工作需求,同時確保集群的安全性。本篇將介紹如何在Kubernetes(K8s)集群中,通過RBAC(Role-based access control)實現(xiàn)只讀權(quán)限控制,以滿足開發(fā)者查看集群pod日志的需求,同時避免操作誤刪等風險。
理解RBAC后,我們著手實現(xiàn)步驟如下:
創(chuàng)建私鑰并生成自簽證書
使用命令`umask 077; openssl genrsa -out support.key 2048`創(chuàng)建私鑰。
生成證書簽署請求,命令為`openssl req -new -key support.key -out support.csr -subj "/CN=support"`。
用CA證書簽署證書,執(zhí)行`openssl x509 -req -in support.csr -CA ./ca.crt -CAkey ./ca.key -CAcreateserial -out support.crt -days 365`。
使用`openssl x509 -in support.crt -text -noout`查看證書信息。
設(shè)置用戶認證信息
使用`kubectl config set-credentials support --client-certificate=./support.crt --client-key=./support.key --embed-certs=true`命令添加用戶認證信息。
通過`kubectl config view`查看當前配置。
設(shè)定上下文,確保用戶可以訪問集群
使用`kubectl config set-context support@kubernetes --cluster=kubernetes --user=support`設(shè)置上下文。
RBAC授權(quán)實現(xiàn)
定義角色`pods-reader`,允許用戶對pods執(zhí)行g(shù)et、list和watch操作。
創(chuàng)建`rolebinding`,將`pods-reader`角色綁定到`support`用戶。
定義`cluster-reader`角色,允許集群級操作。
創(chuàng)建`clusterrolebinding`,將`cluster-reader`角色綁定到`support`用戶。
完成上下文切換
使用`kubectl config use-context support@kubernetes`切換上下文。
至此,`support`用戶已具備集群pod資源的只讀權(quán)限。實現(xiàn)過程簡明易懂,希望對您的工作有所幫助。如需進一步交流或有疑問,請在評論區(qū)留言。歡迎關(guān)注公眾號,一起探討更多SRE相關(guān)技術(shù)。
多重隨機標簽