在大型企業尤其實像是金融產業對於資訊安全的要求一向很高,盡可能減少受攻擊面向是一直在努力的方向。Google Cloud Platform 上面有許多全代管的服務,例如企業級資料倉儲服務 BigQuery、整合式物件儲存空間的 Cloud Storage、作為訊息傳遞和事件擷取平臺的 Cloud Pub/Sub 等等。這些服務不只在 Google Cloud 內部可以使用,只要通過權限認證,在 on-premise 或者其它雲的環境內也都是可以使用。因此我們會需要方法可以設定一些政策,只讓真正應該存取這些服務的網段、設備、或者是身份進行使用。
而透過 VPC 服務控制項 (VPC Service Controls),企業資安團隊能設定精細的安全範圍控管政策並且套用到數個 GCP 專案與服務,而且這些控管政策是在「機構(organization)」層級統一集中設定的,不會散佈在各個專案裡面,方便資安團隊能夠統一管理,能輕鬆對安全控管項目進行增刪改查等操作。例如我們可以讓資安團隊設定某些特定的網段才能夠去存取這些代管的服務。透過這些設定的安全範圍控管政策,我們將可有效減低資安問題,像是控管設定不當造成的資料外洩、惡意使用者上傳程式到的雲端儲存空間等等。
以下範例是要建立一個控制項,讓數個選定的 GCP project 只能從 iKala 的辦公室存取 BigQuery API 和 KMS API。請注意,要使用 VPC 服務控制項必需要有使用”機構” [1],也請先參考文件 [2] 設定好需要的 IAM 權限。
首先我們將專案切換到「機構」層級。在建立 VPC 服務控制項,我們先要建立接下來要使用的存取層級。
在這邊我們為存取層級取個名字「allow_ikala_office」,然後選擇條件。這邊條件可以設定 IP Subnet、地區、裝置政策者。我們這邊以 IP Subnet 為例,有興趣其它選項可以參考 [3]。
我們假設 iKala 辦公室的 IP 範圍是 100.100.0.0/16,所以輸入以下條件。
當新增完存取層級後就可以去新增 VPC 服務控制項。
在這邊要填入名稱、要受保護的 project ,要受保護的服務,和存取層級(以上都可以多選)。
這邊選擇要保護的 API,以我們的例子就是 BigQuery 還有 KMS。
然後選擇剛剛建立的存取層級。
當建立完之後這幾個 project 的 BigQuery 還有 KMS API 就只能在 iKala 的辦公室才能存取,以上就是簡單 demo 一下如何透過集中管理安全防護設定來減少 GCP 上全代管服務受攻擊的面向,讓資料被竊取風險降到最小。如果企業是使用 hybrid 的環境,像是使用 Google Cloud 與 on-premise 並且透過 Cloud VPN 連結,更是可以配合私人 Google 存取權[4] 功能讓企業可以在 hybrid 環境保持機密資料的隱密性。
[1] https://cloud.google.com/resource-manager/docs/creating-managing-organization
[2] https://cloud.google.com/vpc-service-controls/docs/access-control
[3] https://cloud.google.com/access-context-manager/docs/create-access-level
[4] https://cloud.google.com/vpc/docs/private-access-options
[5] https://cloud.google.com/vpc-service-controls/