云資源安全
本文介紹了常見的云資源的安全使用,建議結(jié)合自身業(yè)務(wù)特性,按照安全指南和最佳實踐進行操作和管理。
阿里云致力于在云產(chǎn)品設(shè)計階段即融入安全理念,確保云服務(wù)在初始部署時便具備穩(wěn)健的安全設(shè)置,以此作為安全防護的基石。然而,考慮到用戶應(yīng)用場景的多樣性與復(fù)雜性,我們也提供了豐富和靈活的自定義配置選項,以適應(yīng)不同行業(yè)及特定業(yè)務(wù)需求的細微差異,在賦予用戶高度的靈活性的同時也要求用戶承擔(dān)起相應(yīng)的責(zé)任。因此我們建議在使用時遵循每個產(chǎn)品的安全指南與最佳實踐,結(jié)合自身業(yè)務(wù)特性,審慎的配置與管理云上資源。
一、彈性計算ECS的安全性
(一)操作系統(tǒng)安全
操作系統(tǒng)的安全性是ECS安全性的基礎(chǔ),從用戶登錄和操作系統(tǒng)本身的安全性出發(fā),我們建議按以下方式使用和配置:
登錄安全。傳統(tǒng)的服務(wù)器登錄方式為開放公網(wǎng)IP和端口,然后使用賬密登錄,這種方式存在被掃描破解密碼的風(fēng)險,其登錄記錄也不能被溯源和審計,建議您使用以下方式:
通過會話管理連接實例,類似于堡壘機,在不需要密碼的情況下能夠安全的登錄到ECS的實例上,并支持對所有登錄操作進行追溯;
使用SSH密鑰對,代替賬號密碼進行登錄;
由于SSH密鑰僅支持Linux實例,如果無法使用 SSH 密鑰,推薦使用ECS uesr賬號登錄,而不是默認的root賬號,同時使用KMS管理和定期更新登錄憑證,避免密碼泄露帶來的風(fēng)險。
操作系統(tǒng)安全
使用安全插件Agent,鏡像開啟安全加固,對操作系統(tǒng)中存在的安全漏洞進行掃描并定期修復(fù);
使用云安全中心對系統(tǒng)漏洞進行修復(fù),同時對操作系統(tǒng)中存在的木馬和病毒進行掃描和修復(fù);
通過系統(tǒng)運維管理的補丁管理自動設(shè)置對應(yīng)的補丁掃描,并且設(shè)置對應(yīng)的修復(fù)策略;
如果對安全等保有要求,也可以使用阿里云提供的原生操作系統(tǒng)Alibaba Cloud Linux等保2.0鏡像來提升整個操作系統(tǒng)的安全合規(guī)要求。
(二)訪問控制
在確保操作系統(tǒng)的安全后,您還需要進一步對ECS實例的訪問做限制:
賬號訪問控制
使用阿里云RAM和資源組對ECS實例進行分組并授權(quán),限制RAM用戶只能查看和管理被授權(quán)ECS實例;
為ECS實例綁定標(biāo)簽,然后通過RAM的自定義策略指定授權(quán)的標(biāo)簽,利用標(biāo)簽限制RAM用戶只能查看和管理指定的ECS實例。
安全組:用戶基于自身場景的需要將云資源暴露到不同的網(wǎng)絡(luò)環(huán)境,在配置的過程中,應(yīng)當(dāng)遵循最小夠用原則,在滿足業(yè)務(wù)需求的前提下,盡可能縮小暴露范圍,確保資源僅對必要范圍內(nèi)的IP地址開放;
網(wǎng)絡(luò)ACL(Access Control List):管理和配置網(wǎng)絡(luò)層所有出入子網(wǎng)的流量。
本地盤訪問控制:通過操作系統(tǒng)層面的文件系統(tǒng)權(quán)限來管理本地盤的ECS實例,防止未授權(quán)的讀寫操作。
(三)備份與恢復(fù)
最后,您應(yīng)該對ECS實例中的敏感數(shù)據(jù)進行備份,在遭遇勒索病毒攻擊時,可快速恢復(fù)業(yè)務(wù),從而降低安全事件帶來的損失,建議按照以下方式進行備份:
使用自動快照策略對關(guān)鍵業(yè)務(wù)數(shù)據(jù)的云盤進行定期數(shù)據(jù)備份,應(yīng)對因誤刪除、勒索病毒造成的數(shù)據(jù)丟失或者應(yīng)用系統(tǒng)故障,需要時可以快速找回云盤數(shù)據(jù),以保證業(yè)務(wù)的連續(xù)性;
通過自定義鏡像對ECS的系統(tǒng)環(huán)境配置、實例數(shù)據(jù)等進行備份,方便在需要的時候快速恢復(fù)。
二、云數(shù)據(jù)庫RDS的安全性
(一)訪問限制
數(shù)據(jù)庫中往往存放了重要的業(yè)務(wù)數(shù)據(jù),如果對外暴露可能會引起嚴(yán)重的數(shù)據(jù)泄漏事件,建議您在使用時嚴(yán)格限制訪問范圍:
通過白名單與安全組規(guī)則限制訪問來源
創(chuàng)建RDS實例后,將IP地址添加到白名單,該IP地址所屬的設(shè)備才能訪問該RDS實例;
關(guān)聯(lián)和復(fù)用ECS安全組策略,僅允許ECS安全組下的ECS訪問RDS。
將RDS限制在VPC內(nèi)網(wǎng)可訪問
將RDS的網(wǎng)絡(luò)類型從默認的經(jīng)典網(wǎng)絡(luò)切換為VPC,一般選擇ECS實例所在的VPC,實現(xiàn)同一VPC下的ECS對 RDS的內(nèi)網(wǎng)互通。如果自有服務(wù)器也需要訪問RDS,可以通過VPN或者專線,將自建IDC的服務(wù)器資源接入阿里云。
(二)數(shù)據(jù)加密
數(shù)據(jù)庫中往往存放了一些敏感數(shù)據(jù),比如個人身份信息、聯(lián)系方式、訂單信息等,在傳輸、存儲和使用時建議加密,確保即使物理層遭到攻擊或數(shù)據(jù)被不當(dāng)訪問,數(shù)據(jù)本身仍然受到保護,常用的一些加密方式包括:
使用SSL在數(shù)據(jù)傳輸時加密:使用SSL對所連接的數(shù)據(jù)庫服務(wù)來源進行驗證,從而有效避免中間人攻擊,確保數(shù)據(jù)傳輸過程中的安全與私密。
數(shù)據(jù)存儲加密:
透明數(shù)據(jù)加密 TDE :在數(shù)據(jù)寫入磁盤之前對其進行加密,當(dāng)數(shù)據(jù)被應(yīng)用程序請求時,再進行解密,數(shù)據(jù)在使用過程中,如查詢、更新等操作時,是以明文形式存在的,但在存儲層面上,數(shù)據(jù)則以密文形式存在;
云盤加密:針對RDS云盤版實例,阿里云免費提供云盤加密功能,基于塊存儲對整個數(shù)據(jù)盤進行加密,即使數(shù)據(jù)備份泄露也無法解密,最大限度保護數(shù)據(jù)安全,而且加密不會影響您的業(yè)務(wù),應(yīng)用程序也無需修改。
(三)數(shù)據(jù)庫備份
您應(yīng)該定期對數(shù)據(jù)庫進行備份,防止因為硬件故障、人為錯誤、病毒攻擊或數(shù)據(jù)損壞等原因?qū)е碌臄?shù)據(jù)不可用,RDS默認提供備份功能,同時針對個性化需求也可采用DBS備份方式。
RDS默認備份:RDS本身提供的備份功能,系統(tǒng)自動進行全量(數(shù)據(jù))和增量(日志)備份;
DBS備份:高級備份功能,支持跨賬號備份、單庫或單表備份、異地備份、將備份存儲于OSS等。
三、對象存儲OSS的安全性
(一)訪問控制
為保證存儲在OSS中數(shù)據(jù)的安全性,OSS資源(包括Bucket和Object)默認為私有權(quán)限,只有資源擁有者或者被授權(quán)的用戶允許訪問,不建議您設(shè)置為公共讀或公共讀寫。如果要授權(quán)第三方用戶訪問或使用自己的OSS資源,可以通過多種權(quán)限控制策略向他人授予資源的特定權(quán)限,包括:基于RAM子賬號的資源訪問權(quán)限(RAM Policy)、基于單個Bucket 的訪問權(quán)限(Bucket Policy)、以及基于單個Object 的訪問權(quán)限(Object Policy),其中Bucket和Object可以設(shè)置讀寫權(quán)限ACL。
以下是一些常用的配置建議:
根據(jù)用戶的實際需求場景配置訪問權(quán)限,如同一RAM用戶限制只擁有對某一、某幾個Bucket的讀權(quán)限;
敏感Bucket限制訪問的RAM用戶、訪問來源IP等;
對Bucket和Object設(shè)置讀寫權(quán)限ACL,僅當(dāng)審批通過之后才能擁有對應(yīng)權(quán)限。
(二)數(shù)據(jù)加密
OSS 支持服務(wù)端數(shù)據(jù)加密和客戶端數(shù)據(jù)加密:
服務(wù)端加密時,數(shù)據(jù)在OSS內(nèi)部被加密,密鑰由OSS或KMS管理,主要用于一些高安全性需求的場景,無需頻繁訪問加密密鑰,簡化密鑰管理;
客戶端加密時,客戶端(如應(yīng)用程序或用戶)負責(zé)對數(shù)據(jù)進行加密,然后再將加密后的數(shù)據(jù)上傳至OSS,解密過程也同樣在客戶端進行,適用于跨云或多云環(huán)境,或者數(shù)據(jù)高度敏感、合規(guī)要求、需要由特定實體解密的情況。
(三)數(shù)據(jù)備份
OSS提供兩種不同的數(shù)據(jù)保護機制:版本控制和云備份。
版本控制對數(shù)據(jù)的覆蓋和刪除操作以歷史版本的形式保存下來,在錯誤覆蓋或刪除對象(Object)后,能夠?qū)⒋鎯υ贐ucket中的Object恢復(fù)至任意時刻的歷史版本;
云備份常用于災(zāi)備、故障等場景,可以對存儲空間(Bucket)內(nèi)的文件(Object)進行定期備份,當(dāng)出現(xiàn)大規(guī)模數(shù)據(jù)丟失時使用云備份找回數(shù)據(jù)。
兩者可以結(jié)合使用,為數(shù)據(jù)提供多層次的保護。
四、容器服務(wù)的安全性
(一)身份認證和訪問控制
使用RBAC管理用戶訪問權(quán)限,通過角色、集群角色的訪問范圍限制,精確控制對資源的訪問;
集群訪問控制:集群訪問支持kubeconfig和服務(wù)賬戶兩種方式
kubeconfig:默認證書的有效期是3年,建議根據(jù)實際需要設(shè)置有效期,并在疑似泄漏的時候及時吊銷憑證;
服務(wù)賬戶:通過上文的RBAC機制控制服務(wù)賬戶的訪問范圍,配置時應(yīng)遵循權(quán)限最小化原則。
Pod 訪問控制:
網(wǎng)絡(luò)策略(Network Policies):通過配置文件可配置 Pod間的網(wǎng)絡(luò)通信規(guī)則,比如允許哪些Pod之間的通信以及通信的端口和協(xié)議,有助于提高安全性,減少攻擊面;
部署服務(wù)賬戶令牌卷投影:可動態(tài)生成和管理短期、基于 Pod 的令牌,減少因令牌泄露或過期導(dǎo)致的潛在問題;
使用ACK-TEE機密計算,把重要的數(shù)據(jù)和代碼放在一個特殊的可信執(zhí)行加密環(huán)境(TEE)。
(二)運行時安全防護
通過Seccomp等手段限制容器應(yīng)用對內(nèi)核進行系統(tǒng)調(diào)用,建議參考以下方式設(shè)置Seccomp策略:
設(shè)置
defaultAction
為"deny"
。這表示所有未在策略中明確允許的系統(tǒng)調(diào)用都會被拒絕,這是Seccomp策略中最基本也是最安全的設(shè)置;根據(jù)最小可用原則,只允許應(yīng)用程序真正需要的系統(tǒng)調(diào)用;
對于允許的系統(tǒng)調(diào)用,可以進一步限制參數(shù)。例如,可以限制
open
調(diào)用只允許打開特定類型的文件或具有特定標(biāo)志。
使用配置巡檢動態(tài)檢查應(yīng)用負載中的安全隱患
通過使用ACK提供的安全配置巡檢功能,可以實時檢測集群工作負載中不安全的配置項,并通過直觀的報表展現(xiàn)給安全運維人員。巡檢完成時,可以通過閱讀巡檢報告結(jié)果,加固工作負載的配置安全。
使用阿里云云安全中心實現(xiàn)威脅檢測與阻斷
云安全中心基于云原生的部署能力,實現(xiàn)對容器服務(wù)的威脅數(shù)據(jù)自動化采集、識別、分析、響應(yīng)、處置和統(tǒng)一的安全管控,結(jié)合K8s日志和云平臺操作日志實時進行行為審計和風(fēng)險識別,實現(xiàn)容器服務(wù)和編排平臺存在的容器逃逸、AccessKey泄露、未授權(quán)訪問風(fēng)險。