https://itnext.io/great-cks-kubernetes-security-exam-preparation-guide-to-help-you-pass-14fe5ab30ce1
本文是作者的心路歷程分享分享文,想要探討什麼是 Certified Kubernetes Security(CKS) Specialist 以及如果要準備這個考試可以如何準備
CKS
1. 根據 CNCF 官網的介紹, CKS 測驗是用來確認 CKS 能夠擁有與掌握如何安全的管理 Kubernetes Clusters,安全的概念包含安全的去處理這些 Container 以及整個 Kubernetes 平台的安全性(建置,部署,運行等所有階段)
2. 考取 CKS 之前要先通過 CKA (Certified Kubernetes Administrator) 的測試
3. Kubernetes 官網上其實有非常多的文件與操作說明, CKS 更像是一個幫助你去挑戰自我,確認自己有能力與知識去處理 k8s 安全相關的設定與操作。
如何準備 CKS
作者列舉了幾個重點概念
1. Docker Image 實作上的最佳實踐
2. 理解下列內容
a. CIS Kube-bench
b. Trivy
c. Sysdig/Falco
d. AppArmor
e. Seccomp
f. OPA/Gatekeeper
3. Linux 基礎理解,特別是 cGroup
4. Kubernetes 架構以及相關元件,譬如 RBAC, NetworkPolicy, PSP 等
5. API Server 相關操作,包含 Admission control, Audit 以及如何除錯
作者於文章後半部分列出了很多文章與影片連結,資源非常豐富,其中還提到 CKS/CKA/CKAD 的模擬器 (https://killer.sh/),對於該考試有興趣的一定要使用這些資源來練習
最後列出一些純 k8s 的一些考試內容
1. Admission controllers.
請確保你熟悉各種不同類型,如 PodSecurityPolicy,ImagePolicyWebhook 的實作與差異,並一定要知道這些是如何跟 API Server 互動的。
2. Immutable containers
如何使用 securitycontext 創造一個 Immutable 的容器並且避免一些可能會造成 mutable 的操作
3. Network Policy
4. PodSecurityPolicy(隨者 OPA 的發展,這個考試內容將會慢慢的被捨去)
5. gVisor
對於 CKS 考試有興趣的建議看看本篇文章,其中文章內有滿多跟安全相關的影片與文章也都值得閱讀
「rbac實作」的推薦目錄:
rbac實作 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
這邊跟大家分享一篇關於 Kubernetes 多租戶的相關文章,該文章中探討到底多租戶的定義,以及實現上的難易程度
1. 多租戶可分成軟性與硬性兩種隔離, Kubernetes namespace 可以視為軟性隔離,而硬性隔離則是希望能夠更強力的隔離所有資源,文章中提到了 vClusters 的概念,連結放在最後
2. 作者認為多租戶的 Kubernetes Cluster 實際上也會帶來一些限制,讓某些功能變得不方便使用。
a. 基於 namespace 的租戶隔離方式就只能大家都同樣一個 k8s 版本,同時有一些支援 RBAC 設定的 Helm Chart 可能就不方便使用。
3. 作者這邊反思提出一個問題,為什麼真的需要多租戶的 Kubernetes 叢集,不能夠用多個單一租戶的 Kubernetes 叢集來取代?
a. 真的有這樣的實例,但是其實成本過高且沒效率。
b. 如果公司內每個開發人員都需要一個自已的 k8s來操作測試,規模一大的話你每個月的成本非常可觀,因此如果可以有一個多租戶的 k8s,就可以解決這些問題
4. 多租戶實作上的挑戰,作者這邊列出幾個問題,包含使用者管理,資源分配以及如何隔離
a.基本上每個組織本身都已經有管理使用者的解決方案,譬如 AD/LDAP 等,如果要將這些使用者的認證授權與 kubernetes 整合,推薦使用 dex 這個支持 OpneID/OAtuth2 的解決方案,幫你將 Kubernetes 與外部資料系統整合
b. 底層資源的共享,避免單一租戶過度使用導致其他租戶不能使用。資源包含了運算資源,網路頻寬等。作者列出透過 Resource Quotas 等可以幫忙限制運算資源,但是並沒有說出網路頻寬這部份該怎麼處理。這部份我認為需要導入更多的network qos解決方案來限制,應該會需要cni以及外部交換機路由器等來幫忙
c. 最後則是互動上的隔離,要如何確保這些多租戶不會互相影響彼此,甚至攻擊彼此。這部份可能要從 NetworkPolicy 來處理網路流量,同時透過 vCluster的方式來提供相對於 namespace層級更強烈的隔離,確保彼此不會互相影響。
5. 最後,作者列出了一些關於多租戶的可能解決方案,包含了 kiosk, loft等
結論來說就是,今天你如果有多租戶的需求,請先問自己,你需要什麼等級的多租戶管理,再來則是三個重點問題要先想清楚,你要怎麼處理
1) 如何管理使用者/租戶
2) 系統資源要如何分配與限制
3) 如何真正有效的隔離這些租戶
如果有這方面的需求,可以先看看別的開源軟體怎麼實作,再來思考是否滿足需求,如果要自己實現,有哪些好的設計值得參考!
歡迎留言討論讓大家知道更多關於多租戶的玩法與經驗
https://medium.com/faun/kubernetes-multi-tenancy-a-best-practices-guide-88e37ef2b709
https://loft.sh/blog/introduction-into-virtual-clusters-in-kubernetes/
rbac實作 在 基於Role-based access control 實作身分驗證模組 - GitHub 的推薦與評價
LexLibrary.Rbac · 登入& 登出 · 註冊& 驗證Email · 忘記密碼& 重設密碼 · 角色模組 · 功能模組 · 驗證授權狀態(可限制登入裝置數量) · 基本資料維護 ... ... <看更多>
rbac實作 在 [請益] 數據權限結構設計- 看板PHP 的推薦與評價
目前正在使用laravel實作一個類似校園系統的東西
但是在設計權限上發現遇到了一個有點問題的部分
研究了一下權限大致可分為功能權限和數據權限
目前功能權限的部分是使用laravel-permission這個套件,很方便有弄出來
但在數據權限的部分遇到了蠻大的障礙,例如說校長可以管理班級,並指派班級老師
老師可以看到被指派的班級資料,校長可以看到所有的班級資料,但可能也會有行政老師
,
行政老師可以在沒有被指派班級的情況下看到所有的班級資料,
如果是只針對"班級"這件事這麼做
可以硬是開表寫出來沒問題,但是因為目前做的東西是希望可以模組化的,
可能會有校長又可以管理社團,並指派社團老師,然後又有行政人員....等等
會有很多種同樣的情況,
所以不希望對班級就開一張班級的權限表,
這個時候想要處理誰可以看到資料的這個數據權限應該要怎麼設計或是有什麼思考、查詢
的方向
查到的英文文件幾乎都沒什麼資料,可能是我關鍵字不會下,找到的幾乎都是檔案權限問
題
目前覺得這篇看起來可能有用
https://www.cnblogs.com/jhcelue/p/6759269.html
但是說明其實很少,也沒什麼討論的資料,所以覺得有點遇到障礙
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.197.228 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1569578104.A.825.html
※ 編輯: Nancy010006 (39.12.137.226 臺灣), 09/30/2019 09:24:55
... <看更多>