雲端儲存空間,能降低企業 IT 的儲存成本和營運負擔,並更快地擴展、充分利用雲端的優勢。而一個好的儲存空間,還必須滿足隱私和安全要求,以便限制存取、保護敏感訊息。在企業將資料轉移到雲端時,安全性往往是他們關心的議題,而這也是 Google Cloud 所有產品首重的任務。
Cloud Storage 提供簡單、可靠且經濟實惠的儲存,與隨時隨地檢索任意數量的資料的功能,並具有內置的安全功能,例如傳輸和靜態加密以及一系列加密密鑰管理選項,包括 Google 管理、客戶提供、客戶管理和硬體安全模組。Google 擁有世界上最大的專用網路之一,可在您使用 Cloud Storage 時最大程度地降低您的資料在公開網際網路上的暴露。
延伸閱讀:如何快速將資料從 AWS S3 搬遷到 GCP Cloud Storage
使用 Cloud Storage 保護資料的最佳做法
保護企業儲存資料需要進行事前的規劃,以確保資料免受未來的威脅和新挑戰。除了基本的安全性服務外,Cloud Storage 還提供了多種安全功能,例如:uniform bucket-level access、服務帳戶 HMAC 密鑰、IAM conditions、Delegation tokens 和 V4 簽章。
本文分享一些上述功能的最佳實踐,幫助您大規模地保護資料:
#1: 使用組織政策 (org policies) 集中控制,並定義合規性邊界 (compliance boundaries)
就像 Google Cloud 一樣,Cloud Storage 遵循資源層次結構。Bucket 中包含與專案 (projects) 關聯的物件 (objects),然後將這些物件與組織綁定。您還可以使用文件夾來進一步區分專案資源。組織政策 (org policies) 是可以在組織、文件夾或專案級別的設定,以強制執行特定行為。
我們建議啟用以下 2 個組織政策:
- 啟用領域限制的分享 (Domain-restricted sharing):此政策可防止與組織外部的人分享內容。例如,如果您嘗試將 bucket 中的內容提供給公開網際網路,則此政策將阻止該操作的執行。
- Bucket 層級之統一存取控制 (Uniform bucket-level access):此政策可簡化權限並幫助大規模管理存取控制。使用該政策後,所有新創建的 bucket 都會採用在 bucket-level 設定的統一存取控制,以控制其下所有基礎物件的存取。
#2: 善用 Cloud IAM 簡化存取控制
Cloud Storage 提供了 2 種系統,讓您授予 bucket 和物件存取權限用:Cloud IAM 和存取控制列表 (Access Control Lists, ACL)。假如某人想存取資源,這些系統中只要有一個需要授予權限給他。至於這兩者有什麼差別呢?
ACL 屬於物件層級 (object-level) 的,可對單個物件授予存取權限。然而,隨著 bucket 中物件的數量增加,管理單個 ACL 所需的成本也隨之增加,如此一來要評估所有物件在單個 bucket 中的安全性就會變得很困難。想像一下,你必須看過數百萬個物件以便查看單個用戶是否具有正確的存取權限。
此處我們建議使用 Cloud IAM 來控制對資源的存取。Cloud IAM 支援以 Google Cloud 為範圍、以平台為核心的統一機制來管理 Cloud Storage 資料的存取控制。當您啟用Bucket 層級之統一存取控制 (Uniform bucket-level access) 時,物件層級的 ACL 就會被停用,並以 bucket level 的 Cloud IAM 政策來管理存取權。因此,在 bucket level 授予的權限,會自動套用在 bucket 中的所有物件。
#3: 如果您無法使用 IAM 政策,請考慮使用其他替代的 ACL 方法
我們了解有時我們的客戶出於各種原因而繼續使用 ACL,例如多雲端架構或與個別用戶共享物件時。但是,我們不建議針對終端使用者採用 ACL 管理物件。
您可以考慮以下替代方案:
- 簽章的 URL:簽章 URL 允許您委派對 Cloud Storage 資源的限時存取。產生簽章的 URL 時,其查詢字串中,會包含一個與「擁有存取權的帳戶」相關聯的身份驗證資訊。舉例來說,您可以向某人發送一個 URL,允許他們存取文檔、閱讀文檔、並在一周後撤消存取權限。
- 獨立的bucket:審核 bucket 並查找存取模式。如果您注意到一組對象都分享相同的 ACL 物件集,請考慮將它們移到單獨的 bucket 中,以便可以在 bucket-level 控制存取。
- IAM conditions:如果您的應用程式在物件命名有共同的前綴,則還可以使用 IAM conditions 根據前綴進行分享存取。
- Delegation Tokens:您可以使用 STS Tokens 授予對 Cloud Storage buckets 和分享前綴的限時存取。
#4 將 HMAC key 用於服務帳戶,而不是使用者帳戶
金鑰雜湊訊息鑑別碼 (hash-based message authentication key, HMAC key) 是一種憑證,用於創建對 Cloud Storage 的請求中包含的簽名。通常,我們建議為服務帳戶使用 HMAC key 而不是使用者帳戶。這有助於減輕「依賴單一使用者帳戶」的安全性和隱私隱患。它還可以降低服務訪問中斷的風險,因為當某位使用者離開專案或公司時,可以禁用該使用者帳戶。
為了進一步提高安全性,我們還建議:
- 作為 key 更換策略的一部分,定期更改 key
- 授予服務帳戶可以完成任務的最小訪問權限(即最小權限原則)
- 如果您仍在使用 V2 簽章(或遷移到 V4 簽章,這將自動實施最長一周的時間限制),請設定合理的到期時間
想了解有關 Cloud Storage 的更多訊息以及確保資料安全合規的更多方法,歡迎閱讀 Google Cloud 存取控制的相關文件。
(本文翻譯改編自 Google Cloud。)