這兩年到處分享雲服務心得時,幾乎每一次都會有人問到:「資料放在雲端上面到底安不安全呢?」
由於Security議題是很技術性的問題,若要詳細說明時就足以說一整天了,所以我總是會概要的說明:
- 提供雲服務的業者都會聘請一群安全專家來處理,一群專家絕對比企業自聘一位IT人員強!
- 雲服務業者提供的IaaS、PaaS其實很安全,問題反而是在應用程式的開發、架構規劃不當等環節!
- 企業自己放在公司內或機房內的伺服器反而比放在雲端上面要更不安全,因為有實體機器!
- 資料的安全不只是防護駭客的入侵,還包括資料備援、災難復原等重要設置!
最近因為受邀去參加AWS Deep Dive Day (Partner Day)兩天的密集訓練後,覺得又重新學習了一次AWS,也更了解AWS雲服務的安全措施,以及許許多多的實戰技巧!
所以趁此機會與台灣的朋友們分享一下關於雲服務安全的議題,當然這次介紹的是AWS雲服務,不代表其它的雲服務也是如此哦,看倌們千萬別看了文章之後,然後向我抱怨說為什麼自己用的雲服務沒有這麼好用?XD
到底Amazon在AWS雲服務的安全議題下了多少工夫,就讓我們看下去:
Amazon在其提供的Security Overview文件中提到Cloud Application必須在每層架構都妥善處理安全議題:
- Physical
- Network
- Data (in transit & at rest)
- Operating System
- Security credential management
- Logging
Physical
Amazon在實體層所做的一些處置,包括:
- DataCenter的確切位置(所在地)只有負責相關的部門人員才會知道,業務、客服等其他單位也僅能知道在哪個城市,但不會知道實際所在的位置,藉此來減少實際知道DataCenter的人員,以降低安全風險。
- 每個Region中有很多DataCenter,但有些DataCenter不會被列在Availability Zones(AZ)清單裡,但實際上這些DataCenter仍是有相同的基礎建置,例如在美東列了五個DataCenter,事實上是有更多的DataCenter。
- 每一個AZ均為Redundant(互為備援),提供強健、穩固的Internet Connectivity。
- 但每個Region不互為備援,且資源大多並不直接互通(例如在us-east的EC2不能直接啟用在us-west的AMI)。
- 有實體存取權限的人員(例如機房管理人員)絕對不會有虛擬存取權限(AWS系統管理人員)。
Network
Amazon在網路層所做的一些處置,包括:
- DDoS (Distributed Denial of Services)的防護。
- 所有的API均以SSL來提供串接。
- IP Spoofing (IP地址偽裝)的防護。
- Port Scanning (Port掃描)的防護。
- Packet Sniffing (封包側錄)的防護,在hypervisor層就讓網路卡不能設為混雜模式(Promiscuous Mode)
Data
Amazon在資料防護所做的一些安全處置,包括:
- 所有儲存設備都必須經過標準流程來使用 (參考DoD 5220.22-M、NIST 800-88)。
- 退役的儲存設備都必須摧毀實體 (實體上的破壞,這和金融業的做法相同)。
- 每個Local Disk在建置時一定會先被清空,而且客戶可自行針對資料進行加密。
- 避免在單個Instance中能讀取到其他Instance中的資料。
- AWS符合多個國際安全規範:SAS70 (SOC 1) Type II Audit、ISO 27001 Certification、Payment Card Industry Data Security Standard (PCI DSS) Level 1 Compliant、FedRAMP (FISMA)
- 傳輸資料時可以用SSL/TLS來加密防護。
- 敏感資料在儲存前最好先進行加密處理,包括Objects、Files、Records(資料庫)。
Openrating System
Amazon在系統層所做的一些安全處置,包括:
- 每一個Instance中的Guest OS由客戶擁有最高的admin權限,AWS的管理人員無法登入客戶的Instance。
- 每一個Instance中的Guest OS須由客戶自行更新Patch,可用傳統工具或用新的方法(如Puppet、Chef)。
- 可善用AWS Security Groups來加強安全性 (EC2, VPC, RDS, ElastiCache)
- 可善用Guest OS本身的防火牆來加強安全性(例如Linux的iptables),但要注意別影響到水平擴展的設置。
- 可利用第三方的工具或解決方案來加強安全性。
Security credential management
Amazon在安全憑證管理所做的一些處置,包括:
- 每個AWS Account都可以建置獨立的資源(如EC2、S3、EBS…)。
- 每個AWS Account可以善用IAM來提供群組、權限與帳號管理。
- Linux的Instance利用SSH進行登入管理,且均以PKI方式進行身份驗證。
- Windows的Instance利用RDP進行登入管理,須先用Key取得密碼。
- 每個Account均會有各自的Private Key、Secret Key、X.509 Keys以及管理Instance用的Key-Pair (不同Region必須有不同的Key-Pair,不能直接互通)
Logging
Amazon的文件中並沒有針對此部份進行詳述,就個人的認知而言,應當包括:
- 每個Account的操作均會留下Log
- 所有上述的相關操作均會留下Log
- AWS系統管理人員的操作均會留下Log
- AWS機房管理人員進出均會留下Log
關於Security更多的相關資料可參考:http://aws.amazon.com/security/penetration-testing/
Summary
大致了解Amazon的安全措施後,各位是否覺得夠安全了呢?
至少我個人深深覺得:
- 絕對會比使用Web-Hosting的服務安全,畢竟Web-Hosting的服務是多租戶共用一台的模式。
- 絕對會比企業自己架伺服器,請IT人員維護來得安全 (企業資安問題很多是內部員工造成的)。
- 絕對會比企業自己架伺服器,放在機房來得安全 (大部份自建伺服器時的備援措施都沒做)。
日後若有機會再與大家分享如何善用AWS VPC來加強部署在AWS上的服務安全性,以官方提供的VPC文件來看會有四種架構方式,強烈建議有用AWS EC2在提供服務的朋友們一定、千萬、務必要好好仔細看看哦!! 🙂