欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Kubernetes身份認(rèn)證和授權(quán)操作全攻略:K8s訪問控制入門-創(chuàng)新互聯(lián)

隨著Kubernetes被廣泛使用,成為業(yè)界公認(rèn)的容器編排管理的標(biāo)準(zhǔn)框架,許多開發(fā)人員以及管理員對部署、彈性伸縮以及管理容器化應(yīng)用程序等Kubernetes的關(guān)鍵概念都十分熟悉。而對于生產(chǎn)部署而言,Kubernetes的安全性至關(guān)重要。因此,了解平臺如何管理用戶和應(yīng)用程序的身份認(rèn)證和授權(quán)十分必要。

創(chuàng)新互聯(lián)公司是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),賣友情鏈接廣告投放平臺為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。

我們將推出一系列文章,以一種實踐性的視角來了解平臺內(nèi)部的Kubernetes和Pod外部用戶的身份認(rèn)證和授權(quán)。我也會解釋如何使用角色以及角色綁定來允許或限制資源訪問。

API Server——Kubernetes網(wǎng)關(guān)

API為Kubernetes各類資源對象(如節(jié)點、標(biāo)簽、Pod、服務(wù)、部署、secrets、configmaps以及ingress等)提供訪問接口。這些資源對象通過簡單的REST API執(zhí)行基本的CRUD(增刪改查)操作。

Kubernetes的核心構(gòu)建塊之一是API Server,它作為Kubernetes的網(wǎng)關(guān),是訪問和管理資源對象的唯一入口。內(nèi)部組件(如kubelet、調(diào)度程序和控制器)通過API Server訪問API以進(jìn)行編排和協(xié)調(diào)。分布式鍵/值數(shù)據(jù)庫、etcd只能通過API Server訪問。

通常我們可以通過命令行工具kubectl來與API Server進(jìn)行交互。從kubectl發(fā)送的任何內(nèi)容最終都會被API Server所接收。因此,多個工具和插件會直接或間接地使用相同的API。

即使在Kubernetes集群中訪問或者操作對象之前,該請求也需要由API Server進(jìn)行身份驗證。REST路徑使用基于X.509證書的TLS協(xié)議來保護(hù)和加密流量。Kubectl在編碼和發(fā)送請求之前查找文件?/ .kube / config以檢索CA證書和客戶端證書。

apiVersion:?v1
clusters:
-?cluster:????
????certificate-authority:?/Users/janakiramm/.minikube/ca.crt????
????server:?https://192.168.99.100:8443??
??name:?minikube
contexts:
-?context:????
????cluster:?minikube????
????user:?minikube??
??name:?minikube
current-context:?minikube
kind:?Config
preferences:?{}
users:
-?name:?minikube??
?user:????
?????client-certificate:?/Users/janakiramm/.minikube/client.crt????
?????client-key:?/Users/janakiramm/.minikube/client.key

文件ca.crt表示集群使用的CA證書,文件client.crt和client.key映射到用戶minikube。Kubectl使用上下文中的這些證書和密鑰對請求進(jìn)行編碼。

我們可以通過curl命令訪問API Server嗎?答案是肯定的。

即使最常見的操作是通過運行kubectl proxy來使用tunnel協(xié)議,我們依然可以通過計算機(jī)上的可用證書來訪問路徑。除了CA證書之外,我們還需要在頭部嵌入base64編碼的令牌(token)。

如何檢索令牌(token)以及從curl調(diào)用API的命令如下:

kubectl?config?view?-o?jsonpath='{"Cluster?name\tServer\n"}{range?.clusters[*]}{.name}{"\t"}{.clu

Cluster?name??Server?
minikube??https://192.168.99.100:8443

export?CLUSTER_NAME="minikube"

APISERVER=$(kubectl?config?view?-o?jsonpath="{.clusters[?(@.name==\"$CLUSTER_NAME\")].cluster.server}")

接下來,一個重要的任務(wù)就是獲取與默認(rèn)service account關(guān)聯(lián)的令牌。無需擔(dān)心這一實體,我們將在之后的文章中更好地理解它。

TOKEN=$(kubectl?get?secrets?-o?jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-

現(xiàn)在我們擁有調(diào)用curl的所有數(shù)據(jù)了:

curl?-X?GET?\?--cacert?~/.minikube/ca.crt?\?--header?"Authorization:?Bearer?$TOKEN"?\?$APISERVER/version

Kubernetes身份認(rèn)證和授權(quán)操作全攻略:K8s 訪問控制入門

Kubernetes訪問控制的三個層次

如上文所述,用戶和Pod在訪問或操作對象之前都要由API Server進(jìn)行身份認(rèn)證。

當(dāng)一個有效的請求發(fā)送到API Server時,在它被允許或被拒絕之前將經(jīng)歷3個步驟。

Kubernetes身份認(rèn)證和授權(quán)操作全攻略:K8s 訪問控制入門

1、 身份認(rèn)證

一旦TLS連接建立,請求就進(jìn)入到身份認(rèn)證階段,在這一階段,請求有效負(fù)載由一個或多個認(rèn)證器模塊檢查。

認(rèn)證模塊時管理員在集群創(chuàng)建過程中配置的,一個集群可能有多個認(rèn)證模塊配置,每個模塊會依次嘗試認(rèn)證, 直到其中一個認(rèn)證成功。

在主流的認(rèn)證模塊中會包括客戶端證書、密碼、plain tokens、bootstrap tokens以及JWT tokens(用于service account)。客戶端證書的使用是默認(rèn)的并且是最常見的方案。有關(guān)認(rèn)證模塊的詳細(xì)列表,請參閱:

https://kubernetes.io/docs/reference/access-authn-authz/authentication/

請注意,Kubernetes是沒有用于驗證用戶身份的典型用戶數(shù)據(jù)庫或者配置文件。但是它使用從X.509證書以及令牌中提取的字符串,將它們傳遞到身份認(rèn)證模塊。OpenID,Github甚至LDAP提供的外部認(rèn)證機(jī)制可以通過其中一個認(rèn)證模塊與Kubernetes集成。

2、 授權(quán)

一旦API請求得到認(rèn)證,下一步就是確認(rèn)這一操作是否被允許執(zhí)行。這是訪問控制流程中的第二個步驟。

對于授權(quán)一個請求,Kubernetes主要關(guān)注三個方面——請求者的用戶名、請求動作以及該動作影響的對象。用戶名從嵌入token的頭部中提取,動作是映射到CRUD操作的HTTP動詞之一(如 GET、POST、PUT、DELETE),對象是其中一個有效的Kubernetes對象,如pod或者service。

Kubernetes基于一個存在策略來決定授權(quán)。默認(rèn)情況下,Kubernetes遵循封閉開放的理念,這意味著需要一個明確的允許策略才可以訪問資源。

與身份認(rèn)證類似,授權(quán)也是基于一個或多個模塊配置的,如ABAC模式、RBAC模式以及Webhook模式。當(dāng)管理員創(chuàng)建集群時,他們配置與API sever集成的授權(quán)模塊。如果多個模塊都在使用,Kubernetes會檢查每個模塊并且如果其中任一模塊授權(quán)了請求,則請求授權(quán)通過。如果所有模塊全部拒絕請求,則請求被拒絕(HTTP狀態(tài)碼403)。如果想了解詳細(xì)的受支持的模塊列表,請參閱:

https://kubernetes.io/docs/reference/access-authn-authz/authorization/#authorization-modules

當(dāng)您使用默認(rèn)配置的kubectl時,所有的請求都會通過,因此此時您被認(rèn)為時集群管理員。但當(dāng)我們添加新的用戶,默認(rèn)狀態(tài)下他們會限制訪問權(quán)限。

3、 準(zhǔn)入控制

通過準(zhǔn)入控制是請求的最后一個步驟。與前兩個步驟類似,準(zhǔn)入控制也有許多模塊。

但與前兩個步驟不同的是,最后的階段可以修改目標(biāo)對象。準(zhǔn)入控制模塊作用于對象的創(chuàng)建、刪除、更新和連接(proxy)階段,但不包括對象的讀取。舉個例子,例如,準(zhǔn)入控制模塊可用于修改創(chuàng)建持久卷聲明(PVC)的請求以使用特定存儲類。模塊可以實施的另一個策略是每次創(chuàng)建容器時提取鏡像。更多關(guān)于準(zhǔn)入控制模塊的詳情,請參閱:

https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/

在這一過程中,如果任一準(zhǔn)入控制模塊拒絕,那么請求立刻被拒絕。一旦請求通過所有的準(zhǔn)入控制器,將使用對應(yīng)API對象的驗證流程對其進(jìn)行驗證,然后寫入對象存儲。

在下一部分的文章中,我們將更進(jìn)一步了解創(chuàng)建用戶以及為其配置身份認(rèn)證。保持關(guān)注喲~

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前名稱:Kubernetes身份認(rèn)證和授權(quán)操作全攻略:K8s訪問控制入門-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.chinadenli.net/article42/djohec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈品牌網(wǎng)站建設(shè)小程序開發(fā)電子商務(wù)定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管