一直以來,公有云安全是橫亙在廣大用戶面前的一道鴻溝。雲安全(Cloud Security)是指用於控制雲計算的安全性、合規性和其餘使用風險的過程、機制和服務。公有云提供商們都強調安全是其最高優先級工做,動輒就發佈上百頁的雲上安全最佳實踐白皮書,舉辦幾百幾千人安全大會,發佈幾十甚至上百個安全服務。但與此同時,用戶們對雲上安全的擔憂一直揮之不去。在福布斯(Forbes)2019年的一份報告中,66%的IT從業人員認爲安全是他們使用公有云服務最大的擔憂。Gartner預測到2020年,至少50%的企業用戶會在不知情或誤操做地將一些IAAS存儲服務、網絡、應用或API直接暴露到互聯網上,而到2023年,至少99%的雲上安全問題都是用戶的錯誤引發的。 算法
那究竟是什麼形成了這條鴻溝呢?筆者認爲緣由主要有三:一是用戶不知道本身該爲雲中安全承擔什麼責任,二是用戶不知道雲中安全服務的用途和用法,三是用戶不知道要爲本身的應用選擇哪些安全服務。只有對症下藥,從明確本身的責任開始,在瞭解雲中的安全服務後,再選擇合適的安全服務,才能跨越鴻溝,開啓雲中安全之旅。數據庫
第一步:明晰職責 – 搞清楚你要爲雲中安全承擔的責任後端
要實施成功的雲安全,第一要務是分清雲提供商和做爲用戶的你的責任。公有云中的安全性和本地數據中心中的安全性有所不一樣。在傳統數據中心安全模型中,你要爲所有的安全性負責,包括機房、物理網絡、物理服務器、虛擬機、應用等等。當負載被遷移到了公有云上後,一部分安全責任由公有云提供商承擔了,但企業安全團隊依然須要承擔部分安全責任。此時,安全模型變成了安全責任共擔模型,也就是說你和公有云提供商一塊兒來爲你在他們雲中的應用的安全負責。緩存
Amazon Web Service(AWS)是全球最大公有云提供商。其安全責任共擔模型(Shared Responsibility Model)明確指出,AWS負責提供安全的基礎設施和服務,而客戶負責保護操做系統、平臺和數據。安全
圖1:AWS安全責任共擔模型(基礎設施服務)服務器
在AWS安全共擔模型中,AWS負責保障雲「的」安全性,這是AWS的第一責任。以可用區(Availability Zone,AZ)爲例,這是AWS雲基礎設施的一部分,AWS負責爲數百萬活躍客戶提供安全的可用區。AWS雲的每一個可用區由兩個或以上的互相隔離的數據中心構成,數據中心之間有足夠的隔離距離,每一個數據中心有獨立的電力供應,數據中心採用冗餘高速網絡互連等等。微信
圖2:AWS可用區設計網絡
AWS有一整套安全制度來保障每一個數據中心的安全平穩運行。好比每一個數據中心內部都採用視頻監控,結合AWS的Kinesis Video Stream、S3以及人工智能等服務,來對視頻作實時傳輸、存儲和分析,實時發現可能存在的問題。架構
圖3:AWS對其機房實時視頻監控負載均衡
而你,做爲AWS 雲的一用戶,則需爲雲「中」的安全性負責,這包括如下五個部分:
身份和訪問控制:負責雲中的身份和訪問管理,包括身份認證和受權機制、單點登陸(SSO)、多因子認證(MFA)、訪問密鑰、證書、密碼等。
基礎設施保護:負責對網絡、虛擬機實例和容器實例等基礎設施進行安全保護。在網絡方面,好比使用VPC來建立一個私有的、安全的和可擴展的網絡環境,建立網絡分層,在每一層上進行安全控制,自動地進行網絡檢測和防禦,開啓網絡訪問日誌等;在主機方面,好比使用主機安全工具來掃描虛擬機和應用的安全狀態,使用代碼掃描工具來發現代碼中的安全漏洞,對操做系統進行自動補丁升級和加固,使用安全通道訪問虛擬機,使用安全的配置工具對虛擬機進行配置等。
數據保護:負責你數據的安全,包括數據分類、加密、訪問控制等,由於數據是雲用戶的資產,雲供應商對其沒有訪問權限。
安全檢測:負責採用各類安全服務和工具,不論是雲供應商提供的仍是第三方的抑或是本身開發的,檢測潛在的安全風險和安全問題。
事件響應:負責在出現安全問題後作出響應,消除安全風險,恢復數據和業務。
第二步:瞭解工具 – 搞清楚雲服務商提供了哪些安全服務
AWS首席信息安全官史蒂芬·施密特曾經說過:「客戶經常跟咱們說,幫他們保持安全最好的方式,就是交給他們更智能的工具,讓他們能夠更容易地搞定安全。」爲了幫助用戶實現上述五大安全責任,到目前爲止,AWS提供超過200種身份認證、安全及合規服務。下表中列出了AWS主要安全服務。
類別 |
描述 |
場景 |
安全服務 |
身份和訪問管理 |
針對不一樣AWS服務、操做和資源來定義、執行和審覈用戶權限 |
安全地控制對AWS服務和資源的訪問 |
AWS Identity & Access Management (IAM) |
雲單點登陸服務 |
AWS Single Sign-On |
||
App身份管理 |
Amazon Cognito |
||
託管的Microsoft Active Directory服務 |
AWS Directory Service |
||
用於共享AWS資源的簡單而安全的服務 |
AWS Resource Access Manager |
||
基礎策略管理多個AWS帳戶 |
AWS Organizations |
||
輪換、管理以及檢索數據庫憑證、API密鑰和其它密鑰 |
AWS Secrets Manager |
||
檢測性控制 |
在問題影響業務以前識別和應用問題、改進安全情況並下降環境中的風險 |
統一安全與合規中心 |
AWS Security Hub |
智能威脅檢測和持續監控 |
Amazon GuardDuty |
||
分析應用程序安全性 |
Amazon Inspector |
||
記錄和評估AWS資源的配置 |
AWS Config |
||
跟蹤用戶活動和API使用狀況 |
AWS CloudTrail |
||
物聯網設備的安全管理服務 |
AWS IoT Device Defender |
||
利用機器學習自動發現、分類和保護敏感數據 |
Amazon Macie
|
||
生成進出VPC的IP流量的日誌信息 |
VPC Flow Logs |
||
基礎設施保護 |
管理和提升基礎設施的總體安全性 |
分佈式拒絕服務攻擊防禦 |
AWS Shield |
過濾惡意網絡流量 |
AWS Web Application Firewall (WAF) |
||
跨帳號管理AWS WAF規則 |
AWS Firewall Manager |
||
安全地配置和管理EC2 |
AWS Systems Manager |
||
數據保護 |
經過數據的自動加密和管理服務,加強數據安全性 |
建立用於數據加密的加密密鑰 |
AWS Key Management Service (KMS) |
AWS雲中託管的硬件安全模塊 |
AWS CloudHSM |
||
建立、管理和部署公共和私有的SSL/TLS證書 |
AWS Certificate Manager |
||
回滾、管理以及回收密鑰 |
AWS Secrets Manager |
||
經過多種密鑰對S3中的數據進行服務器端加密 |
AWS S3 Server-side Encryption |
||
事件響應 |
幫助快速響應時間並返回到已知的良好狀態 |
調查潛在安全問題 |
Amazon Detective |
快速、自動、經濟高效地災難恢復 |
CloudEndure Disaster Recovery |
表1:AWS主要安全服務
AWS全部這些安全服務,構成了一個多層次的完整保護機制,爲你在AWS雲中的應用保駕護航。
圖4:AWS分層安全保護機制
除了安全服務外,AWS還在AWS Architecture Center(AWS架構中心)網站上提供了最佳參考架構方案、工具、培訓和實驗,涵蓋敏捷性、安全性、可靠性、高性能和成本等多個方面。並且,在AWS Marketplace中,還有幾百家安全合做夥伴,在應用安全、數據保護、合規、主機安全、身份和訪問控制、日誌和威脅檢測等提供衆多工具和方案。
瞭解每種安全服務的用途、使用場景、工做流程乃至計費方式等很是重要。下面就深刻介紹下Security Hub和GuardDuty這兩種安全服務。
(一)Amazon GuardDuty 服務
在AWS環境中,對網絡活動和帳戶行爲進行持續監控很是重要。啓用CloudTrail後,AWS帳戶內幾乎全部API調用活動都會記錄下來,但從海量日誌中發現可疑活動會很是困難。VPC流日誌服務負責記錄的VPC內的網絡活動也是如此。爲了解決這些困難,AWS發佈了Amazon GuardDuty服務,它經過分析多個日誌數據源(包括VPC流日誌、AWS CloudTrail事件日誌和DNS查詢日誌),持續監測AWS帳號、VPC網絡和負載的運行狀況,使用威脅情報源和機器學習來標識AWS 環境中可疑的和未經受權的惡意活動,並且還可利用Amazon CloudWatch事件和AWS Lambda來執行自動化的通知和修復操做。
圖5:Amazon GuardDuty產品架構
Amazon GuardDuty會使用由AWS安全團隊負責維護和不斷改進的算法來進行日誌檢測。主要檢測類別包括非法探測、實例盜用和帳號盜用等,並且還在持續增長中。
圖6:不斷增長中的GuardDuty能發現的安全風險類型數
而後,它將分析結果按照三個級別 (低、中和高) 之一呈現出來,並附有詳細的證據和修復建議。
圖7:Amazon GuardDuty截圖
這些結果可做爲事件輸入到 Amazon CloudWatch之中,再使用AWS Lambda 函數來自動通知甚至修復特定類型的問題。在下圖所示的例子中,GuardDuty收集日誌裏的數據進行分析並將結果存放在S3中,同時經過CloudWatch Events採集特定的安全事件或風險等級事件。對於中等風險,經過AWS SNS服務郵件通知管理員,對於高風險則經過AWS Connect結合AWS Lambda電話通知管理員。
圖8:基於 Amazon GuardDuty 威脅級別的自動化通知
(二)AWS Security Hub
實現雲上安全的一大挑戰是可視性(Visibility)。你可能會用到多種安全工具,每種工具都會提供安全保護併產生大量數據,這使得你得天天在這些工具之間來回切換,處理數百甚至數千個安全警報。
爲了解決此問題,AWS發佈了Security Hub服務,它可以讓你在一個可視化平臺上就能查看AWS帳戶中的全部安全警報與合規性狀態。它對來自多個AWS服務(如Amazon GuardDuty、Amazon Inspector 和 Amazon Macie),以及AWS合做夥伴(好比Splunk, Qualys, Crowdstrike, Alert Logic等)的解決方案的安全警報或檢測結果進行聚合、組織和設置優先級,而後在具備可操做圖形和表格的集成控制面板上對全部檢測結果進行直觀彙總。
圖9:AWS Security Hub產品架構
GuardDuty從VPC流日誌、AWS CloudTrail事件日誌和DNS日誌中發現AWS帳戶、VPC網絡和負載中的安全問題,Macie則利用人工智能算法從被監控的S3存儲桶中發現安全問題,Inspector從EC2實例中發現操做系統和應用的安全問題。全部安全問題都彙總到Security Hub後,它處理數據並進行關聯性分析,以肯定最終檢測結果的優先級,而後在集成的控制面板上將全部安全檢測結果彙總起來,展現出當前的安全性與合規性狀態。
圖10:AWS Security Hub產品界面截圖
相似GuardDuty,Security Hub也支持經過CloudWatch Events與Lambda以及Step Functions集成。首先你在Security Hub配置數據來源以及響應方式,而後安全檢測結果條目會被以事件(Event)形式發送到CloudWatch中,CloudWatch中的規則(Rule)被觸發,而後事件信息會被推送到各類通知和事件管理或處理系統中。
圖11:AWS Security Hub自動響應示例
第三步:合理選擇 – 搞清楚要選擇哪些安全服務爲你所用
要搞清楚需爲你在AWS上的應用選擇哪些安全服務,仍是得從你所選擇的雲功能服務入手。下圖顯示了針對一個典型三層Web應用部署架構所選擇的主要安全服務。
圖12:一典型Web應用部署架構中用到的安全服務
默認啓用AWS IAM、CloudTrail、Config、VPC Flow Logs、VPC DNS Logs 等服務或功能。IAM負責建立子帳戶以及分配對帳戶和資源的訪問權限;CloudTrail會記錄你AWS帳號內幾乎全部API調用;Config會記錄你帳戶內全部的配置變化;VPC Flow Logs則會記錄VPC內的全部網絡流日誌;VPC DNS Logs會記錄VPC內全部DNS查詢日誌。全部這些日誌都是進行後續安全檢測的主要數據來源。
Amazon EC2是一基礎設施類服務,提供虛擬機服務。你需將EC2實例建立在VPC中以實現網絡隔離,利用安全組控制網絡訪問,使用IAM控制用戶、應用或服務對它的訪問權限,使用SSH或AWS Systems Manager Session Manager安全地遠程訪問它,使用AWS Systems Manager Run Command對EC2實例進行配置,使用AWS Inspector對EC2實例和應用進行安全檢查,手工或使用AWS Systems Manager Patch Manager自動地進行補丁升級和更新,使用EBS雲盤加密功能來保護其靜態數據安全等,使用Amazon EC2 Auto Scaling 來提高其高可用性等。
Amazon S3是一託管類服務,提供對象存儲服務。AWS負責保證其11個9的數據可靠性和4個9的服務可用性,以及操做系統及軟件補丁升級、防火牆配置及災難恢復等。你可以使用SSL/TLS訪問它,採用客戶端數據加密,啓用服務器端數據加密,按需配置訪問權限,啓用MFA Delete功能以防止存儲桶誤刪,開啓訪問日誌和監控,啓用對象版本,對特定對象加鎖以防止對象誤刪,使用CCR(跨區域訪問)來知足某些合規要求;還可啓用AWS Macie服務,它會使用人工智能算法對S3存儲桶中的數據進行分析,發現潛在的安全風險,保護敏感數據。
Amazon RDS是一託管類服務,提供關係數據庫服務。它向用戶提供多個安全功能,包括支持在VPC中建立實例、DB安全組、權限控制、SSL鏈接、實例和快照加密、自動備份和快照、多可用區部署、操做系統和數據庫軟件自動補丁升級、日誌、監控及事件通知等,可根據須要使用這些功能。
Amazon ElastiCache是一託管服務,提供內存型緩存服務。它也提供了一系列安全功能,包括支持在VPC中建立實例、支持經過Cache安全組控制網絡訪問權限、IAM策略、SSL鏈接、數據加密、多可用區部署、操做系統和軟件自動補丁升級、故障探測和恢復、支持多實例、備份和恢復、自動快照、日誌、監控及事件通知等。
AWS Elastic Load Balancing是一基礎設施類型服務,負責接收客戶端請求並將其分發給後端EC2實例。它需被建立在VPC中,建議將其分佈在多個可用區中以保障可靠性,使用安全(HTTPS/TLS)監聽器以保障客戶端和其之間的通訊安全,配置安全組以只接收特定客戶端的請求,使用AWS Certificate Manager來管理其服務器證書,選擇合適的負載均衡器安全策略和監聽器安全策略等。
在網絡邊界,AWS Shield基礎版或高級版能夠爲ELB、CloudFront發佈、Route 53託管區域等提供基礎性和高級DDoS防禦;啓用AWS WAF,用於監控和控制對Web應用的非法訪問;須要的話還能夠啓用AWS Firewall Manager服務,用於跨帳戶統一管理AWS WAF訪問規則、AWS Shield Advanced防禦規則和VPC安全組等安全規則。
啓用GuardDuty,將數據源配置爲Macie、VPC Flow Logs和DNS Logs,它會負責對VPC內的網絡活動和帳戶行爲進行持續監控;再啓用Security Hub來做爲你的AWS雲上統一安全與合規中心,將其數據源配置爲GuardDuty、Macie和Inspector,它會讓你在一個控制面板上就能查看你AWS帳戶中的全部安全警報與合規性狀態。
還能夠啓用Trusted Advisor服務,它可根據AWS部署架構最佳實踐,分析你的應用部署架構,從成本、性能、安全、容錯、容量等方面給出評估結果和改進建議,指導你進一步完善這個部署架構。
小結
須要指出的是,完整的雲上安全管理流程包括識別(Identity)、保護(Protect)、檢測(Detect)、響應(Respond)、恢復(Recover)等五大環節。所以,文中介紹的這三步 - 明晰責任、瞭解工具、合理選擇,只是雲上安全旅程的前幾步而已,但走好這幾步,你就能順利開啓你的雲上安全之旅了。
圖13:AWS完整安全管理流程
如今就出發,開啓你的雲上安全之旅吧!
感謝您的閱讀,歡迎關注個人微信公衆號: