🎯課程目標___HTMLTAG_66__HTMLTAG_67___了解 Kubernetes 中的身份驗證和授權、如何使用 RBAC 進行授權、替換 PodSecurityPolicy 的 Pod 安全標準(已刪除 K8s 1.25)以及重要的准入控制器.___MLTAG_68___MLTAG_68___MLTAG_68___MLTAG_68___MLTAG_68___MLTAG_68___MLTAG_68___
1。 Kubernetes 中的驗證
Kubernetes 沒有內建使用者管理。相反,kube-apiserver 支援許多身份驗證方法:
-
___HTMLTAG_74__HTMLTAG_75___X.509 用戶端證書:kubeconfig 使用客戶端證書,最常見
___HTMLTAG_78__HTMLTAG_79___承載令牌:ServiceAccount 令牌、OIDC 令牌
___HTMLTAG_82__HTMLTAG_83___OIDC (OpenID Connect):與 Dex、Keycloak、Auth0、Google、Azure AD 整合
___HTMLTAG_86__HTMLTAG_87___Webhook:將身分驗證委託給外部服務
2。使用者與服務帳號
-
___HTMLTAG_94__HTMLTAG_95___使用者:人類身分 - Kubernetes 中沒有資源,外部管理(憑證、OIDC)
___HTMLTAG_98__HTMLTAG_99___ServiceAccounts:機器身分 — Kubernetes 資源,用於 Pod
3。 RBAC — 基於角色的存取控制
3.1 角色和叢集角色
___程式碼區塊_2___3.2 RoleBindings 和 ClusterRoleBindings__HTMLTAG_112___ ___程式碼區塊_3___ ___程式碼區塊_4___
3.3 最小權限原則
___程式碼區塊_5___4。 Pod 安全標準 (PSS) — 取代 PodSecurityPolicy
___HTMLTAG_117__HTMLTAG_118___PodSecurityPolicy (PSP) 已在 K8s 1.25 中完全刪除。 替換為 Pod 安全標準:4.1 三個安全等級
-
___HTMLTAG_124__HTMLTAG_125___特权:无限制。僅用於系統元件、叢集範圍控制器
___HTMLTAG_128__HTMLTAG_129___基線:防止常見升級。適用於大多數應用。封鎖:特權容器、hostPath、hostNetwork、hostPID
___HTMLTAG_132__HTMLTAG_133___受限:強化安全性。需求:非 root 使用者、非 root 群組、刪除所有功能、seccompProfile RuntimeDefault/Localhost、無 hostPath
4.2 Pod 安全准入 (PSA)
___程式碼區塊_6___ ___程式碼區塊_7___5。准入控制器
准入控制器在驗證/授權後攔截對 API 伺服器的請求。有 2 種類型:
-
___HTMLTAG_144__HTMLTAG_145___變異:更改物件(例如注入 sidecar,設定預設值)
___HTMLTAG_148__HTMLTAG_149___驗證:僅批准/拒絕(例如:PSA、ResourceQuota)
6。入場 Webhook
___程式碼區塊_9___摘要
- Kubernetes 沒有使用者管理 — 使用 X.509 憑證、OIDC
- ServiceAccounts:機器身分、預期令牌(短暫)
- RBAC:角色/ClusterRole + RoleBinding/ClusterRoleBinding
- 最小權限:僅授予最低必要權限
- PSP 刪除了 K8s 1.25 → 使用 Pod 安全標準 (PSA)
- PSA 等級:特權、基線(建議預設)、受限(生產)