成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kubernetes身份認證和授權操作全攻略:K8s 訪問控制入門

開發 前端
隨著Kubernetes被廣泛使用,成為業界公認的容器編排管理的標準框架,許多開發人員以及管理員對部署、彈性伸縮以及管理容器化應用程序等Kubernetes的關鍵概念都十分熟悉。

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

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

API Server——Kubernetes網關

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

Kubernetes的核心構建塊之一是API Server,它作為Kubernetes的網關,是訪問和管理資源對象的唯一入口。內部組件(如kubelet、調度程序和控制器)通過API Server訪問API以進行編排和協調。分布式鍵/值數據庫、etcd只能通過API Server訪問。

Kubernetes身份認證和授權操作全攻略:K8s 訪問控制入門

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

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

 

  1. apiVersion: v1 
  2. clusters: 
  3. - cluster: 
  4. certificate-authority: /Users/janakiramm/.minikube/ca.crt 
  5. server: https://192.168.99.100:8443 
  6. name: minikube 
  7. contexts: 
  8. - context: 
  9. cluster: minikube 
  10. user: minikube 
  11. name: minikube 
  12. current-context: minikube 
  13. kind: Config 
  14. preferences: {} 
  15. users: 
  16. name: minikube 
  17. user
  18. client-certificate: /Users/janakiramm/.minikube/client.crt 
  19. client-key: /Users/janakiramm/.minikube/client.key 

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

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

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

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

 

  1. kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.clu  
  2. Cluster name Server  
  3. minikube https://192.168.99.100:8443  
  4. export CLUSTER_NAME="minikube"  
  5. APISERVER=$(kubectl config view -o jsonpath="{.clusters[?(@.name==\"$CLUSTER_NAME\")].cluster.server}"

接下來,一個重要的任務就是獲取與默認service account關聯的令牌。無需擔心這一實體,我們將在之后的文章中更好地理解它。

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

現在我們擁有調用curl的所有數據了:

 

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

 

Kubernetes身份認證和授權操作全攻略:K8s 訪問控制入門

Kubernetes訪問控制的三個層次

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

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

Kubernetes身份認證和授權操作全攻略:K8s 訪問控制入門

1、 身份認證

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

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

在主流的認證模塊中會包括客戶端證書、密碼、plain tokens、bootstrap tokens以及JWT tokens(用于service account)。客戶端證書的使用是默認的并且是最常見的方案。

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

2、 授權

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

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

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

與身份認證類似,授權也是基于一個或多個模塊配置的,如ABAC模式、RBAC模式以及Webhook模式。當管理員創建集群時,他們配置與API sever集成的授權模塊。如果多個模塊都在使用,Kubernetes會檢查每個模塊并且如果其中任一模塊授權了請求,則請求授權通過。如果所有模塊全部拒絕請求,則請求被拒絕(HTTP狀態碼403)。

當您使用默認配置的kubectl時,所有的請求都會通過,因此此時您被認為時集群管理員。但當我們添加新的用戶,默認狀態下他們會限制訪問權限。

3、 準入控制

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

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

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

在下一部分的文章中,我們將更進一步了解創建用戶以及為其配置身份認證。保持關注喲~

責任編輯:未麗燕 來源: Dockone.in
相關推薦

2010-04-23 14:04:23

Oracle日期操作

2009-02-10 09:47:00

應用程序訪問權限

2025-04-16 08:35:55

2024-03-04 07:00:00

KubernetesIngress

2024-05-07 09:01:21

Queue 模塊Python線程安全隊列

2013-04-15 10:48:16

Xcode ARC詳解iOS ARC使用

2013-06-08 11:13:00

Android開發XML解析

2022-09-05 08:26:29

Kubernetes標簽

2010-08-16 09:48:38

無線局域網

2025-04-02 09:33:01

2020-05-12 10:20:39

K8s kubernetes中間件

2009-02-20 11:43:22

UNIXfish全攻略

2014-03-19 17:22:33

2009-12-14 14:32:38

動態路由配置

2009-10-19 15:20:01

家庭綜合布線

2024-06-26 00:22:35

2009-01-05 15:59:00

Java認證指南

2009-01-05 15:58:00

Java認證報考指南

2022-02-23 07:50:36

LinuLinux操作系統

2023-09-06 08:12:04

k8s云原生
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线一区 | 亚洲视频在线观看免费 | 欧美日韩视频在线播放 | 国产免费色 | av香蕉| 色综合一区二区 | 又黄又爽的网站 | 天天操夜夜操 | 国产精品久久久久久吹潮 | 午夜视频在线 | cao在线| 国产精品毛片 | 久久久噜噜噜久久中文字幕色伊伊 | 亚洲国产小视频 | 91精品国产色综合久久 | 色毛片 | 日韩一区二区福利 | 国产精品一区在线观看你懂的 | 免费骚视频 | 欧美精品一区在线 | 欧美一区二区三区精品免费 | 先锋影音资源网站 | 56pao在线| 欧美日日 | 精品亚洲一区二区三区 | 亚洲精品久久国产高清情趣图文 | 国产精品久久99 | av一区二区三区四区 | 国产精品成人一区二区三区 | 国产小视频自拍 | 日韩欧美中文 | 91麻豆精品国产91久久久久久 | 久久久久网站 | 国产一区二区在线视频 | 国产精品一区在线观看 | 中文字幕亚洲精品在线观看 | 九九天堂网 | 国产1区2区 | 成年人免费网站 | 日本久久综合 | 午夜视频一区二区 |