ACK安全性原則管理功能提供了符合Kubernetes容器應用情境的安全性原則規則。其中,新增了ASM限制Pod必須注入ASM Sidecar策略,進一步提升接入ASM的叢集安全性。本文介紹如何在ACK叢集中開啟強制注入Sidecar策略以及示範此策略開啟後的效果。
背景資訊
策略治理
自Kubernetes 1.21起,PodSecurityPolicy(PSP)被標記為棄用(Deprecated)狀態。為此,ACK升級了原先基於PSP的策略管理功能。基於使用OPA策略的Gatekeeper Admission Controller,ACK擴充了相應的策略治理狀態統計、日誌上報檢索等能力,同時內建了種類豐富的策略治理規則庫,提供符合更多Kubernetes應用情境的策略規則。在規則配置上,您可以在控制台上白屏化配置,降低使用原則治理相關能力的門檻。
策略類型包括以下大類:
Infra:基礎設施層資源相關的策略類型。
Compliance:基於阿里雲K8s加固等Kubernetes合規規範定製的策略類型。
PSP:替代Pod Security Policy(PSP)能力的策略類型。
K8s-general:基於最佳安全實踐對Kubernetes資源配置進行安全強化約束的通用策略類型。
Sidecar注入
Sidecar所支援的功能可以從應用程式的容器中抽象出來,並在作為同一Pod中的獨立容器提供的代理中實現。為了充分利用這些功能,應用程式中的每個服務都需要在其Pod中運行一個Sidecar代理。Sidecar代理攔截到該服務的所有入站和出站TCP通訊,並與Service MeshASM控制面通訊。
前提條件
叢集版本為v1.16及以上。如需升級叢集,請參見手動升級叢集。
如需使用RAM使用者進行策略管理時,請確保該RAM使用者擁有以下授權:
cs:DescribePolicies:列舉策略治理規則庫列表cs:DescribePoliceDetails:擷取策略規則模板詳情cs:DescribePolicyGovernanceInCluster:擷取叢集策略治理詳情cs:DescribePolicyInstances:擷取叢集中當前部署的策略執行個體列表cs:DescribePolicyInstancesStatus:擷取叢集當前不同策略類型對應的執行個體部署狀態cs:DeployPolicyInstance:在指定叢集中部署策略規則執行個體cs:DeletePolicyInstance:在指定叢集中刪除策略規則執行個體cs:ModifyPolicyInstance:在指定叢集中修改策略規則執行個體
關於如何自訂RAM授權策略,請參見使用RAM授予叢集及雲資源存取權限。
配置方式
叢集添加到ASM執行個體後,預設不會開啟命名空間級的自動注入。若叢集中開啟了此策略,相關命名空間Pod的建立動作不會成功或建立後叢集會收到高危安全警告,併產生對應違規審計的警示日誌。配置流程如下:
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在策略管理頁面,按頁面提示完成組件的安裝或升級(如有),然後按需進行以下開啟操作。
從安全性原則列表開啟強制注入策略。
單擊我的策略頁簽,查看叢集所有可部署的策略名稱稱。
在策略列表中找到ASMSidecarInjectionEnforced策略,點擊條目右側操作列的開啟。
按照以下內容填寫策略配置,然後單擊建立:
配置項
說明
實施動作
您可以根據實際需求選擇:
攔截:違反策略規則約束的指定資源部署會被攔截。
警告:違反策略規則約束的指定資源仍舊可以部署,只會產生對應違規審計的警示日誌。
作用範圍
指定策略執行個體實施在叢集中哪些命名空間,您也可以選擇在所有命名空間(不推薦)。
參數配置
留空即可。
直接建立策略執行個體。
單擊我的策略頁簽,然後單擊建立策略執行個體,在建立策略執行個體對話方塊配置相關參數。
配置項
說明
策略類型
選擇策略類型infra。更多資訊,請參見容器安全性原則規則庫說明。
策略名稱稱
根據選擇的策略類型,在策略名稱稱下拉式清單中選擇ASMSidecarInjectionEnforced原則範本名稱。
實施動作
您可以根據實際需求選擇:
攔截:違反策略規則約束的指定資源部署會被攔截。
警告:違反策略規則約束的指定資源仍舊可以部署,只會產生對應違規審計的警示日誌。
作用範圍
指定策略執行個體實施在叢集中哪些命名空間,您也可以選擇在所有命名空間(不推薦)。
參數配置
留空即可。
驗證策略。
default命名空間未開啟自動注入,同時ACK開啟強制注入策略,實施動作選擇攔截。
查看工作負載。
可以看到容器組建立失敗。

單擊策略實施總覽頁簽,在近7天策略實施記錄列表中出現了攔截記錄。

編輯策略,修改實施動作為警告。
重新部署httpbin應用。
查看工作負載。
可以看到應用部署成功。

單擊策略實施總覽頁簽,在近7天策略實施記錄列表中出現了警告記錄。
