本文從運行時安全、可信軟體供應鏈和基礎架構安全三個維度介紹阿里雲Container ServiceKubernetes版的安全體系,包括安全巡檢、策略管理、運行時監控和警示、鏡像掃描、鏡像簽名、雲原生應用交付鏈、預設安全、身份管理、細粒度存取控制等。
運行時安全
安全巡檢
叢集的應用開發人員應該遵循許可權的最小化原則配置應用部署模板,攻擊者往往是利用應用Pod中開啟的不必要的特權能力發起逃逸攻擊,因此阿里雲Container ServiceKubernetes版ACK(Alibaba Cloud Container Service for Kubernetes)提供了應用運行時刻的安全配置巡檢能力,協助您即時瞭解目前狀態下運行應用的配置是否存在安全隱患。
巡檢結果支援以報表化的方式展示,同時展示巡檢對應掃描項的說明和修複建議。您還可以配置定期巡檢,對應的掃描結果會寫入到SLS指定的日誌庫中儲存。具體操作,請參見使用配置巡檢檢查叢集Workload安全隱患。
策略管理
ACK基於使用OPA策略的Gatekeeper准入控制器,擴充了策略治理狀態統計和日誌上報檢索等能力,同時內建了種類豐富的策略治理規則庫,提供更多符合K8s應用情境的策略規則。您可以在Container Service管理主控台上進行策略治理規則可視化配置,降低使用原則治理相關能力的門檻。更多資訊,請參見配置容器安全性原則(新版)。
通過使用ACK策略管理能力,可以協助企業安全營運人員在應用部署階段自動化阻斷不符合策略要求的風險應用,提升叢集內應用運行時安全水位,降低公司專屬應用程式開發和營運團隊的溝通和學習成本。
運行時監控和警示
當容器應用通過API Server的認證鑒權和准入控制校正成功部署後,在雲原生應用零信任的安全原則下,還需要在容器應用的運行時刻提供相應的安全監控和警示能力。因此,阿里雲Container Service和Security Center深度整合了警示處理和漏洞檢測能力,叢集管理員可以在應用運行時提供監控和警示能力,主要的容器側攻擊防護行為如下:
惡意鏡像啟動警示。
病毒和惡意程式的查殺。
容器內部入侵警示。
容器逃逸和高風險操作預警。
您可以在叢集管理頁面的使用安全監控。
頁面即時接收到相應警示,並根據頁面提示查看和處理警示詳情。具體操作,請參見安全沙箱管理
相比於原有Docker運行時,安全沙箱為您提供了一種新的容器運行時選項,可以讓您的應用運行在一個輕量虛擬機器沙箱環境中,擁有獨立的核心,具備更好的安全隔離能力。
安全沙箱特別適合於不可信應用隔離、故障隔離、效能隔離、多使用者間負載隔離等情境。在提升安全性的同時,對效能影響非常小,並且具備與Docker容器一樣的使用者體驗,例如日誌、監控、彈性等。關於安全沙箱管理的詳細介紹,請參見安全沙箱概述。
ACK-TEE機密計算
當面向諸如金融、政府等有很強安全訴求的應用情境時,ACK-TEE機密計算提供了基於硬體加密技術的雲原生一站式機密計算容器平台 ,它可以協助您保護資料使用(計算)過程中的安全性、完整性和機密性,同時簡化了可信或機密應用的開發、交付和管理成本。
機密計算可以讓您把重要的資料和代碼放在一個特殊的可信執行加密環境(Trusted Execution Environment,TEE)中,而不會暴露給系統其他部分,其他應用、BIOS、OS、Kernel、管理員、營運人員、雲廠商,甚至除了CPU以外的其他硬體均無法訪問機密計算平台資料,極大減少敏感性資料的泄露風險,為您提供了更好的控制、透明度和隱秘性。更多資訊,請參見ACK-TEE機密計算介紹。
可信軟體供應鏈
鏡像掃描
Container Registry支援所有基於Linux的容器鏡像安全掃描,可以識別鏡像中已知的漏洞資訊。您可以收到相應的漏洞資訊評估和相關的漏洞修複建議,為您大幅降低使用容器的安全風險。Container Registry也接入了雲安全的掃描引擎,可支援鏡像系統漏洞、鏡像應用漏洞和鏡像惡意樣本的識別。
鏡像簽名
在容器鏡像管理中,您可以通過內容可信的機制保障鏡像來源的安全性及不被篡改。鏡像的建立者可以對鏡像做數位簽章,數位簽章將儲存在Container Registry中。通過在部署前對容器鏡像進行簽名驗證可以確保叢集中只部署可信授權方簽名的容器鏡像,降低在您的環境中運行意外或惡意代碼的風險,確保從軟體供應鏈到容器部署流程中應用鏡像的安全和可溯源性。關於鏡像簽名和驗簽的配置使用流程,請參見使用kritis-validation-hook組件實現自動驗證容器鏡像簽名。
雲原生應用交付鏈
在容器安全高效交付情境中,您可以使用Container Registry的雲原生應用交付鏈功能,配置鏡像構建、鏡像掃描、鏡像全球同步和鏡像部署等,自訂細粒度安全性原則,實現全鏈路可觀測、可追蹤的安全交付。保障代碼一次提交,全球多地區安全分發和高效部署,將DevOps的交付流程全面升級成DevSecOps。關於雲原生應用交付鏈的詳細介紹,請參見建立交付鏈。
基礎架構安全
預設安全
阿里雲Container ServiceKubernetes版ACK(Alibaba Cloud Container Service for Kubernetes)叢集節點,控制面組件配置基於阿里雲Kubernetes安全強化能力加固,且叢集內所有系統組件均依據容器安全最佳實務進行了組件配置上的加固,同時保證系統組件鏡像沒有嚴重層級的CVE漏洞。
每個建立的叢集會預設分配一個與之對應的安全性群組,該安全性群組對於公網入方向僅允許ICMP請求。建立的叢集預設不允許公網SSH串連,如果您需要配置通過公網SSH串連到叢集節點,具體操作,請參見通過SSH串連ACK專有版叢集的Master節點。
叢集節點通過NAT Gateway訪問公網,可以進一步減少安全風險。
在託管叢集的Worker節點上,遵循許可權最小化原則,節點上綁定的RAM角色對應的阿里雲資源存取權限經過了最小化收斂。更多資訊,請參見【產品變更】託管叢集節點RAM角色收斂公告。
身份管理
ACK叢集內所有組件之間的通訊鏈路均需要TLS認證校正,保證全鏈路通訊的資料轉送安全,同時ACK管控側會負責叢集系統組件的認證自動更新。RAM帳號或角色扮演使用者均可以通過控制台或OpenAPI的方式擷取串連指定叢集API Server的Kubeconfig訪問憑證,具體操作,請參見擷取叢集KubeConfig介面。ACK負責維護訪問憑證中籤發的身份資訊,對於可能泄露的已下發Kubeconfig,可以及時進行吊銷操作,具體操作,請參見吊銷叢集的KubeConfig憑證。
在叢集建立時,ACK支援服務賬戶令牌卷投影(Service Account Token Volume Projection)特性以增強在應用中使用ServiceAccount的安全性。具體操作,請參見部署服務賬戶令牌卷投影。
細粒度存取控制
基於Kubernetes RBAC實現了對ACK叢集內Kubernetes資源的存取控制,它是保護應用安全的一個基本且必要的加固措施。ACK在控制台的授權管理頁面中提供了命名空間維度細粒度RBAC授權能力,主要包括以下幾點。
根據企業內部不同人員對許可權需求的不同,系統預置了管理員、營運人員、開發人員等對應的RBAC權限範本,降低了RBAC授權的使用難度。
支援多叢集和多個子帳號的大量授權。
支援RAM角色扮演使用者的授權。
支援綁定使用者在叢集中自訂的ClusterRole。
更多資訊,請參見配置RAM使用者或RAM角色的RBAC許可權。
ACK同時支援以組件管理的方式安裝Gatekeeper組件,提供基於OPA策略引擎的細粒度存取控制能力。具體操作,請參見gatekeeper。
審計
ACK和SLSLog Service進行了深度整合,支援多種審計日誌的採集、檢索和圖表化展示功能,具體包括以下三種:
叢集API Server審計日誌:協助您記錄或追溯叢集訪問者的日常操作,是叢集安全營運中的重要環節。在叢集審計頁面,您可以查看內容豐富的審計報表,同時可基於日誌內容設定對指定資源類型操作的即時警示。具體操作,請參見使用叢集API Server審計功能。
Ingress流量審計:通過不同的可視化流量報表協助您瞭解叢集Ingress的整體狀態,比如服務訪問的PV和UV,成功和失敗比例,以及延遲資訊等全方位的流量監控,同時支援基於Log Service提供的機器學習演算法,通過多種時序分析演算法從Ingress的指標中自動檢測異常點,提高問題發現的效率。具體操作,請參見Nginx Ingress訪問日誌分析與監控。
事件監控審計:基於事件的監控可以協助您通過事件擷取,即時診斷叢集的異常和安全隱患。更多資訊,請參見事件監控。
Secret落盤加密
Kubernetes原生的Secret模型在etcd落盤時只經過了Base64編碼,為了保護Secret中敏感性資料的落盤安全性,在ACK Pro託管叢集中,您可以使用在阿里雲Key Management Service(Key Management Service)中建立的祕密金鑰加密Kubernetes叢集Secret,實現應用敏感性資料的落盤加密。具體操作,請參見使用阿里雲KMS進行Secret的落盤加密。