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