~xdavidwu/cskloudv3-thesis

d0601ecfd34bd8c9117bdce24182487f8d9ee578 — Pinghao Wu 2 months ago 6ac595b
Architecture: cel: add ingress
1 files changed, 2 insertions(+), 1 deletions(-)

M Sections/4.Architecture.tex
M Sections/4.Architecture.tex => Sections/4.Architecture.tex +2 -1
@@ 93,9 93,10 @@ CSKloud 達成一代願景中的開放使用者直接存取 Kubernetes API,使

以 CEL 實做 validating admission control 邏輯需要以 ValidatingAdmissionPolicy resource 先行定義,在以 ValidatingAdmissionPolicyBinding resource 將之啟用。圖 \ref{fig:code-pod-policy} 即為實做防止繞過排程的 ValidatingAdmissionPolicy。首先我們只對開放給使用者的 Namespace 進行限制,透過我們權限開通的設計,以具有 \verb|u-| 前綴來判斷。再來由於排程機制對 Pod 指定節點與使用者直接指定修改的欄位相同,我們需要避免限制到叢集系統本身。這點由於我們的權限規劃,使用者沒有列舉 Nodes 的權限,我們以此分別使用者與系統。最後我們檢查欄位狀況。% TODO check if updated

% TODO ingress
另一個需要自訂邏輯的場景是域名使用權的管控。針對用來設定反向代理的 Ingresses,我們一樣先判斷操作的 Namespace 是否為使用者面向的,再進一步進行限制。需要限制的有:禁止使用 \verb|defaultBackend| 欄位(全域、不符合任何規則時的 fallback route),以及所有反向代理規則中的 \verb|host| 必須要符合域名白名單。域名白名單的部份參考其餘政策相關內建 admission controllers 的設計,採用在 Namespace 上標記的白名單作為設定手段,後續再藉由 \ref{sec:provisioner} 權限開通設定此白名單。

\section{權限開通實做}
\label{sec:provisioner}

\section{網頁界面實做}