這篇文章主要講解了“怎么理解Kubernetes認(rèn)證和授權(quán)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么理解Kubernetes認(rèn)證和授權(quán)”吧!
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的疏附網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
當(dāng)設(shè)置產(chǎn)品Kubernetes集群的時(shí)候,認(rèn)證和授權(quán)是兩個(gè)很重要的基本需求。在這篇文章中,讓我們來瀏覽一些細(xì)節(jié),這些細(xì)節(jié)可以幫助Kubernetes環(huán)境做好方案。
比如說,你現(xiàn)在已經(jīng)引發(fā)了通過輸入yaml文件到kubectl(kubectl create-f pod.yaml)創(chuàng)建POD的命令。這個(gè)命令被發(fā)送到有安全保障的api-server端口(http://),然后身份驗(yàn)證流就開始生效了。注意,如果你正在為api-server使用不安全的端口(http://),那么驗(yàn)證就無法應(yīng)用。(http://)理想情況下生產(chǎn)環(huán)境設(shè)置中應(yīng)該避免不安全端口(http://)。
以下是這篇文章中會(huì)提到的在Kubernetes中可使用的驗(yàn)證途徑。
客戶證書驗(yàn)證
為了使用這個(gè)方案,api-server需要用-client-ca-file=<PATH_TO_CA_CERTIFICATE_FILE>選項(xiàng)來開啟。
CA_CERTIFICATE_FILE肯定包括一個(gè)或者多個(gè)認(rèn)證中心,可以被用來驗(yàn)證呈現(xiàn)給api-server的客戶端證書。客戶端證書的/CN將作為用戶名。
基于令牌的身份驗(yàn)證
為了使用這個(gè)方案,api-server需要用-token-auth-file=<PATH_TO_TOKEN_FILE>選項(xiàng)來開啟。TOKEN_FILE是個(gè)csv文件,每個(gè)用戶入口都有下列格式:token,user,userid,group。
Group的名字是隨意的。
令牌文件的例子:
生成tokens的一個(gè)非常簡(jiǎn)單的方法就是運(yùn)行以下命令:
基于令牌的身份驗(yàn)證面臨的挑戰(zhàn)就是,令牌是無期限的,而且對(duì)令牌清單做任何的修改都需要重新啟動(dòng)api-server。
基本認(rèn)證
為了使用這個(gè)方案,api-server需要使用-basic-auth-file=<PATH_TO_HTTP_AUTH>選項(xiàng)來開啟。HTTP_AUTH_FILE是個(gè)csv文件,每個(gè)用戶入口都有下列格式:password,user name,userid。目前,對(duì)AUTH_FILE的任意修都需要重新啟動(dòng)api-server。
Open ID
Open ID支持也是可用的,但是還在試驗(yàn)階段。
Keystone
Keystone支持也是可用的,但是還在試驗(yàn)階段。如果你想要將keystone跟LDAP或者動(dòng)態(tài)目錄服務(wù)整合到一起,那么就要使用keystone認(rèn)證方法。為了使用這個(gè)方案,api-server需要用-experimental-keystone-url=<KEYSTONE_URL>選項(xiàng)來開啟服務(wù)。
驗(yàn)證成功之后,下一步就是找出對(duì)于驗(yàn)證用戶來說,哪些操作是允許的。目前來講,Kubernetes支持4種驗(yàn)證策略方案。api-server需要使用-authorization-mode=<AUTHORIZATION_POLICY_NAME>選項(xiàng)來開啟。
始終否認(rèn)
這個(gè)策略否認(rèn)所有的請(qǐng)求。
始終允許
這個(gè)策略允許所有的請(qǐng)求。
基于屬性的訪問控制
ABAC允許靈活的用戶特定授權(quán)策略。當(dāng)使用-authorization-policy-file=<PATH_TO_ABAC_POLICY_FILE>選項(xiàng)開啟api-sever的時(shí)候,ABAC的策略文件需要指定。目前,對(duì)策略文件有任何的修改都需要重啟api-server。
ABAC策略文件樣本如下所示:
在以上例子中,策略文件中的每一行都是JSON對(duì)象,且指定一個(gè)策略。這是從Kubernetes文檔頁面上對(duì)策略對(duì)象的簡(jiǎn)要描述。
版本控制特性——允許多版本和策略的轉(zhuǎn)換格式。
api版本,字符串類型:有效值就是“abac.authorization.kubernetes.io/v1beta1”。
kind,字符串類型:有效值是“policy”。
規(guī)格屬性——是一個(gè)用以下屬性的映射:
面向?qū)ο笃ヅ鋵傩裕?/p>
用戶,字符串:用戶字符串不是從-token-auth-file,就是從證書文件的普通名字(CN)而來。如果你指定用戶,那么它就肯定跟經(jīng)過身份驗(yàn)證的用戶匹配。*跟所有請(qǐng)求都匹配。
group,字符串:如果你指定group,那么它肯定跟groups中經(jīng)過身份驗(yàn)證的用戶相匹配。*跟所有請(qǐng)求都匹配。
資源匹配屬性
apiGroup,字符串類型:API group,比如拓展版本。*跟所有APIgroup相匹配。
命名空間,字符串類型:命名空間字符串。*跟所有的資源請(qǐng)求相匹配。
資源,字符串類型:資源,比如pods。*匹配所有的資源請(qǐng)求。
非資源匹配屬性:
nonResourcePath,字符串類型:跟所有的非資源請(qǐng)求路徑相匹配(比如/version,/apis)。*跟匹配所有非資源請(qǐng)求。/foo/*跟/foo/,以及它的子路徑。
只讀,布爾型:當(dāng)為真,也就意味著策略只應(yīng)用于獲取,列出和監(jiān)測(cè)操作。
Webhook
調(diào)出一個(gè)外部RESTful授權(quán)服務(wù)。
身份驗(yàn)證和授權(quán)機(jī)制的選擇取決于你的要求。然而在我的經(jīng)驗(yàn)看來,我發(fā)現(xiàn)基于證書的身份驗(yàn)證方法,基于身份驗(yàn)證方法的keystone(LDAP),基于身份驗(yàn)證策略的ABAC,這三種方法的靈活結(jié)合提供了所需的功能,來培養(yǎng)Kubernetes環(huán)境。
感謝各位的閱讀,以上就是“怎么理解Kubernetes認(rèn)證和授權(quán)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么理解Kubernetes認(rèn)證和授權(quán)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
分享文章:怎么理解Kubernetes認(rèn)證和授權(quán)
文章位置:http://www.chinadenli.net/article42/joicec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、小程序開發(fā)、微信公眾號(hào)、App開發(fā)、企業(yè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)