本文從運行時安全、可信軟體供應鏈和基礎架構安全三個維度介紹容器計算服務ACS的安全體系,包括安全巡檢、策略管理、網路安全性原則、安全容器、鏡像掃描、鏡像簽名、雲原生應用交付鏈、預設安全、身份管理、細粒度存取控制、審計和Secret落盤加密。
運行時安全
策略管理
ACS基於使用OPA(Open Policy Agent)策略的Gatekeeper准入控制器提供策略管理能力,內建Compliance、Infra、K8s-general和PSP四類規則庫。您可以在控制台啟用或自訂安全性原則,驗證Pod的部署和更新要求是否安全可控,在應用部署階段自動阻斷不符合策略要求的風險應用。
具體操作,請參見配置容器安全性原則。各類規則庫的詳細說明,請參見容器安全性原則規則庫說明。
網路安全性原則
ACS基於Kubernetes網路原則(NetworkPolicy)提供策略層級的網路存取控制,您可以在IP地址或連接埠層面限制Pod的入向和出向流量,僅允許存取業務必需的訪問路徑,縮小叢集內的橫向移動面。
開啟網路原則後,可通過控制台或kubectl為指定應用配置規則。具體操作,請參見在ACS叢集中使用網路原則。
安全容器(安全沙箱)
相比於原有Docker運行時,安全沙箱為您提供了一種新的容器運行時選項,可以讓您的應用運行在一個輕量虛擬機器沙箱環境中,擁有獨立的核心,具備更好的安全隔離能力。安全沙箱特別適合於不可信應用隔離、故障隔離、效能隔離、多使用者間負載隔離等情境。在提升安全性的同時,對效能影響非常小,並且具備與Docker容器一樣的使用者體驗,例如日誌、監控、彈性等。
安全巡檢
應用開發人員應遵循許可權最小化原則配置應用部署模板,攻擊者往往利用應用Pod中開啟的不必要特權能力發起逃逸攻擊。容器計算服務ACS提供應用運行時刻的安全配置巡檢能力,協助您即時瞭解當前運行應用的配置是否存在安全隱患。
巡檢結果以報表形式展示,並給出對應掃描項的說明和修複建議。您還可以配置定期巡檢,將掃描結果寫入指定的Log ServiceSLS日誌庫中儲存。更多資訊,請參見security-inspector。
可信軟體供應鏈
鏡像簽名
在容器鏡像管理中,您可以通過內容可信的機制保障鏡像來源的安全性及不被篡改。鏡像的建立者可以對鏡像做數位簽章,數位簽章將儲存在Container Registry中。通過在部署前對容器鏡像進行簽名驗證可以確保叢集中只部署可信授權方簽名的容器鏡像,降低在您的環境中運行意外或惡意代碼的風險,確保從軟體供應鏈到容器部署流程中應用鏡像的安全和可溯源性。
鏡像掃描
Container Registry支援所有基於Linux的容器鏡像安全掃描,可以識別鏡像中已知的漏洞資訊。您可以收到相應的漏洞資訊評估和相關的漏洞修複建議,為您大幅降低使用容器的安全風險。Container Registry也接入了雲安全的掃描引擎,可支援鏡像系統漏洞、鏡像應用漏洞和鏡像惡意樣本的識別。
雲原生應用交付鏈(DevSecOps)
在容器安全高效交付情境中,您可以使用Container Registry的雲原生應用交付鏈功能,配置鏡像構建、鏡像掃描、鏡像全球同步和鏡像部署等,自訂細粒度安全性原則,實現全鏈路可觀測、可追蹤的安全交付。保障代碼一次提交,全球多地區安全分發和高效部署,將DevOps的交付流程全面升級成DevSecOps。關於雲原生應用交付鏈的詳細介紹,請參見建立交付鏈。
基礎架構安全
預設安全
容器計算服務ACS的叢集節點與ControlPlane組件均基於CIS Kubernetes Benchmark安全基準加固,且叢集內所有系統組件均依據容器安全最佳實務進行了配置加固,同時保證系統組件鏡像沒有嚴重層級的CVE漏洞。
在託管叢集的Worker節點上,遵循許可權最小化原則,節點上綁定的RAM角色對應的阿里雲資源存取權限經過了最小化收斂。更多資訊,請參見授權最佳實務。
身份管理
ACS叢集內所有組件之間的通訊鏈路均需要TLS認證校正,保證全鏈路通訊的資料轉送安全,同時ACS管控側會負責叢集系統組件的認證自動更新。RAM使用者或角色扮演使用者均可以通過控制台或OpenAPI的方式擷取串連指定叢集API Server的Kubeconfig訪問憑證,具體操作,請參見擷取叢集kubeconfig並通過kubectl工具串連叢集。ACS負責維護訪問憑證中籤發的身份資訊,對於可能泄露的已下發Kubeconfig,可以及時進行吊銷操作,具體操作,請參見吊銷叢集的kubeconfig憑證。
細粒度存取控制
基於Kubernetes RBAC實現了對ACS叢集內Kubernetes資源的存取控制,它是保護應用安全的一個基本且必要的加固措施。ACS在控制台的授權管理頁面中提供了命名空間維度細粒度RBAC授權能力,主要包括以下幾點:
根據企業內部不同人員對許可權需求的不同,系統預置了管理員、營運人員、開發人員等對應的RBAC權限範本,降低了RBAC授權的使用難度。
支援多叢集、多個RAM使用者的大量授權。
支援RAM角色扮演使用者的授權。
支援綁定使用者在叢集中自訂的ClusterRole。
更多資訊,請參見配置RAM使用者或RAM角色RBAC許可權。
審計
ACS與Log ServiceSLS深度整合,支援叢集API Server審計日誌的採集、檢索和圖表化展示,協助您記錄和追溯叢集訪問者的日常操作,並可基於日誌內容對指定資源類型的操作設定即時警示。具體操作,請參見使用叢集API Server審計功能。
Secret落盤加密
Kubernetes原生的Secret模型在etcd落盤時只經過了Base64編碼,為了保護Secret中敏感性資料的落盤安全性,在ACS叢集中,您可以使用在阿里雲Key Management Service(Key Management Service)中建立的祕密金鑰加密Kubernetes叢集Secret,實現應用敏感性資料的落盤加密,並支援使用自動輪轉的密鑰。具體操作,請參見使用阿里雲KMS進行Secret的落盤加密。