[GCP 資安攻略] GCP 資訊安全各項功能簡介
[GCP 資安攻略] GCP 資訊安全各項功能簡介

[GCP 資安攻略] GCP 資訊安全各項功能簡介

一、前言:共同責任模型

資訊安全,不管地端到雲端,都要注意。

很多人說雲端比較不安全,你說的可能是對的,但只有對一半。不管廠商對你的支援到什麼樣的程度,對你的服務多麼好,一旦資安事件發生,即使廠商有賠償,那個賠償也遠遠比不上你的損失。

以公有雲為例,如果今天是資料庫掛掉,資料完全消失,裡面的資料沒有備份,請問公有雲廠商會賠償嗎?

答案是會,但賠償你的是「資料庫不能運作的時間折算成金額」,例如每小時100元,那資料庫掛8小時,那就賠800元。但不會賠償「因資料消失而造成的商業損失」

這裡有一張共同責任模型 (Shared Responsibility Model),提到不同層級的服務,大家承擔責任的範圍會不一樣,例如你使用 BigQuery,你就要負責管好你的內容和存取權限; 如果你用 Compute Engine (就是 VM),你就要管到應用程式的安全、身份驗證、授權和網路安全等等。

 GCP 的共同責任模型 shared responsibility model
GCP 的共同責任模型 shared responsibility model

總歸一句話,廠商不會負全責,終究要負責的還是自己。

但是不用擔心,今天就是要來簡介一下,在 GCP 上有哪些資安的東西可以用。

二、外部資安防護

首先是外部的資安防護,也是大家最常談到的外部攻擊或入侵的問題,最基本的就是 VPC 的防火牆,很多人為了方便存取,防火牆都全開,這樣就容易讓駭客找到漏洞。

如果你的 VM 有外部 IP,卻又沒提供網站服務,等於就是在網路上裸奔,有很多駭客每天都會跑一些小程式,一天到晚在網路上掃描開放連線的 IP 和 Port,有點亂槍打鳥的感覺。

GCP 防火牆
GCP 防火牆

但如果哪一天被矇對了帳號密碼,那就像中樂透一樣,直接讓你的主機變成僵屍電腦,或貼心地幫你加密資料,然後跟你要錢。(你偶爾可以看一下 secure 或 ssh 相關 log,搞不好整天都有人在那邊 try 你的帳密)

建議可以這樣做:

GCP 跳板機連線 Basion Host
GCP 跳板機連線,又稱 Bastion Host

這樣馬上讓你的 VM 安全性提高一大半。詳細操作可以看 使用 Google VM 的5大常見錯誤 – 有一種叫忘記關機!!

如果是用 Cloud SQL 呢?可以參考 Cloud SQL安全連線密技part1 – 限定IP與強制SSL連線

如果是像 DDoS 攻擊呢?別擔心,GCP 現在用 Cloud Armor,提供 WAF 和 DDoS 的防護,除了可以指定 IP 來阻擋,也可以設定第三方 (Cloudflare, Imperva) 提供的 IP 清單,也能針對特定國家的流量,可以參考這篇文章 [GCP DDoS 大作戰] 如何設定 Google Cloud Armor 阻擋來自某些國家的 IP

Cloud_Armor
Cloud_Armor

除此之外,還有預先定義好的規則,例如 XSS (Cross Site Attack), SQL injection, LFI, RFI, RCE 等等。設定方式很像原本的 GCP 防火牆,例如 allow 或 deny,以及優先順序是從小到大排序。

今年開始又推出了 Internet Endpoint Group,連外部的來源都可以防禦,可以保護到外部的 CDN 。

三、內部資料加密

其實 GCP 上的資料,不管是儲存時的加密 (Encryption at rest),或傳輸時的加密 (Encryption in transit),都已經有內建一些服務來保護你的資料。

除此之外,還有所謂的 CMEK (Customer Managed Encryption Key),指的是客戶使用代管式的金鑰管理,Google 的 KMS (Key Management Service)。

KMS_Key Management Service
KMS_Key Management Service

KMS 可以讓你在 GCP 上建立自己的 key,讓你存資料時帶 key 進去加密,然後取資料也要帶 key 去解密資料;還能夠設定自動換 key,每個月換 500 個 key 都沒問題。

你可能會想,那能不能自己管 key 呢?當然可以,就是所謂的 CSEK (Customer Supplied Encryption Key),可以讓你用地端的 key 來加密,但是!!!

自己管就不要弄丟 key!!Key 丟了,沒有人可以救得回來喔!Google 只會放在它的暫存記憶體讓你存取資料時使用,但並不會幫你留 Key 在 GCP上面。

四、安全中心 Security Command Center 與弱點掃瞄

(這裡必須要有 Org 等級的權限才能進來操作, 如果沒有 Org, 要先透過 G Suite 或 Cloud Identity 建立,可參考「GCP上如何建立Organization ? 透過Cloud Identity Free 幫你實現 」)

Security Command Center 提供你看到整個 GCP 的組織架構底下,有哪些弱點,它會幫你評估弱點的嚴重程度和建議的解決辦法,就像一個 GCP 資安顧問一樣,是個很好用的功能。

還有大家最常用的網站弱點掃瞄 Web Security Scanner,它不是說說而已,它真的幫你一行一行掃瞄你的程式碼:

GCP 網站弱點掃瞄 Web Security Scanner
GCP 網站弱點掃瞄 Web Security Scanner

不管你用的是 Compute Engine (GCE/VM), App Engine (GAE) 或 Kubernetes Engine (GKE) 都可以用喔,但要注意,只能掃同一個專案的網站,不能掃外面的喔!

第三種弱點掃瞄,則是針對容器映像檔 (Container Image) 的 Cloud Container Registry,只要你把 Image 存放在這裡,它就可以自動幫你做弱點掃瞄,它一樣能夠幫你依照嚴重性做排明,並附上說明文件,算是非常方便的安全性功能。

Container Registry 自動弱點掃瞄
Container Registry 自動弱點掃瞄

五、BeyondCorp 安全模型

接下來要介紹的是 Google 進階的 BeyondCorp 安全模型,它強調零信任,就是說我不管你是從哪裡來的流量,你都必須經過身份驗證、授權和加密才能進來。即使你本來就在 GCP 的內網,我還是管到底。

在這個框架底下,GCP 有一系列的「情境感知存取權」(Context-Aware Access) 各項功能:

基於BeyondCorp建立的Context-Aware Access
基於 BeyondCorp 建立的 Context-Aware Access

你不需要全部都設定,可針對公司現況設定適合的政策。首先是 Access Context Manager,可以依列條件設定存取的等級和條件:

  • IP 範圍:如果沒從公司 IP 連線,則不允許存取
  • Region (國家代碼) :如果從某些奇奇怪怪國家連線,則不允許存取
  • Device 螢幕鎖定或加密:手機或電腦本身沒有設密碼,則不允許存取 (管很寬)

上面提的是從外部連線進來,這裡還有從內部傳出資料的規定:VPC Service Controls,例如我可以設定我的一個專案要保護 BigQuery:

VPC Service Perimeter
VPC Service Perimeter

然後我再去 BigQuery 匯出資料的話:

Service Control 禁止將資料帶出 BigQuery

我會看到禁止匯出資料的訊息,可確保資料不會隨意被攜出。

最後還有最嚴格的防護規則: Cloud IAP

它能夠保護 GAEGCE (VM)GKE ,甚至連地端的資源都能夠保護(前提是使用 Cloud Interconnect)。

它的設定方式非常多且複雜,並且會動到既有的系統架構,所以如果要使用 Cloud IAP 的話,請先評估並且計劃一下改動的方式,步驟如下:

  • 建立 VM 群組
  • 設定網域和 SSL 憑證
  • 建立 HTTPS load balancer 並加入憑證
  • 重開 VM
  • 刪除原有防火牆規則,建立 IAP 相關防火牆規則
  • 啟動 Cloud IAP
  • 設定 Oauth
  • 加入使用者
  • 測試 IAP 服務

如果有設定完成,它的防護就可以做到非常嚴格,除了憑證、防火牆,也管到你的身份驗證,這些都通過才能存取 GCP。

以上就是在 GCP 上幾個比較重要的資安功能介紹,建議把重點列成清單隨時查看喔!

Aaron Lee

超過6年的Google Cloud經驗,服務過上百家G Suite與GCP客戶,擔任多次研討會主講人與教育訓練講師,提供架構諮詢與技術支援,幫助各大企業上雲。

This Post Has One Comment

  1. Avatar
    Oliver Liu

    (It’s very urgent, therefore we kindly ask you to forward this email to your CEO. Thanks)

    Dear CEO,

    This email is from China domain name registration center, which mainly deal with the domain name registration in China. On 12-01-2021, we received an application from Hongsheng Ltd requested “cloud-ace” as their internet keyword and China (CN) domain names (cloud-ace.cn, cloud-ace.com.cn, cloud-ace.net.cn, cloud-ace.org.cn). But after checking it, we find this name conflict with your company name or trademark. In order to deal with this matter better, it’s necessary to send this message to your company and confirm whether this company is your distributor or business partner in China?

    Best Regards
    Oliver Liu | Service & Operations Manager
    China Registry (Head Office)
    http://www.chinaregistry.com.cn
    Tel: +86-02161918696
    Fax: +86-02161918697
    Mob: +86-13816428671
    6012, Xingdi Building, No. 1698 Yishan Road, Shanghai 201103, China

發佈留言