先前鬧得沸沸揚揚的 GCP 無預警關閉事件,對於負責主機管理的人而言,可說是很大的衝擊。平時就必須想盡辦法維持主機在任何環境下都可以維持高可用性,結果可能預想、規劃好的計畫,Google 卻突然地全部停權。不僅百般無奈,可能也會造成業務上的損失。而 Google 也在此事發生後重新檢討因應做法,因此本文將介紹如何避免此類事件發生。
為何 Google 會試圖將我的 GCP 無預警關閉?
GCP 停權一般可以分為兩種方式:專案停權與帳單帳戶停權,兩者都可能導致您的服務無法繼續運作。
專案停權
所有 GCP 的資源,不管是 VM(GCE)、Google App Engine、Cloud Storage、Cloud DNS 等,皆是隸屬在專案底下。而 Google 與其他公有雲廠商一樣,有自己的服務條款、與可接受使用政策(Acceptable Use Policy)。
而服務條款4.1明確定義:若客戶發現任何應用程序、項目或客戶數據違反 AUP,客戶應立即暫停應用程序、項目或刪除相關的客戶數據。客戶未能按照前一句中的說明暫停或刪除的話, Google 可能會明確要求客戶這樣做。如果客戶未能在二十四小時內遵守 Google 的要求,則 Google 可能會停用該項目或應用程序,抑或停用該帳戶,直到此類違規行為得到糾正。
也就是說若今天違反條款,Google 有權利將運作中的資源中止。若不接受條款也無法使用 GCP。
帳單帳戶停權
Google 使用自動規則來檢查每個用戶的付款方式(信用卡、付款資訊等),若 Google 認為信用卡或付款資訊有問題、又或是有逾期未付的款項,都可能會造成帳單帳戶停權,而與該帳單帳戶連結的專案也會因計費功能被停用,而導致專案內的計費資源被暫停。
如何避免 GCP 停權?
一樣可以分為專案與帳單帳戶來看的話:
避免專案被停權的方法
如果要將服務放在 GCP 上面運行,請確保運行的服務沒有違反AUP,簡言之便是不侵犯他人的著作權、不進行非法活動、散播病毒、干擾其他人的服務。但若是 GCE 被惡意人士入侵,進行上述活動,也會使您的專案、服務遭到停權。故建議參考Google的最佳做法來加強 GCE 的安全性:
- 安全地連接到您的實例。對於面向外部的應用程序,最好正確配置防火牆並保護端口。有關保護實例的提示,請參閱安全連接到 VM 實例。若是企業則可參閱網絡和安全性。
- 確保項目防火牆不對互聯網上的每個人開放。將所有防火牆規則保持為0.0.0 / 0意味著 Internet 上的任何源都可以建立與您的實例的連接。除非您特別希望公開實例,否則一般的最佳做法是僅允許訪問您的應用程序,並且僅允許您的應用程序需要訪問的端口。有關防火牆的最佳實踐信息,請參閱「使用網絡和防火牆的計算引擎」指南中的防火牆規則和防火牆。
- 使用強密碼。密碼確保只有經過授權的人才能訪問您的實例。有關創建強密碼的信息,請參閱創建強密碼。此外,請記住保護用於訪問 Cloud Platform Console 的 Gmail 帳戶。有關保護 Gmail 帳戶的提示,請參閱Gmail 安全檢查清單。
- 確保所有軟件都是最新的。確保您安裝的軟件是最新的,並且沒有可能危害您實例的已知漏洞。
- 通過監控 API 密切監控項目使用情況,以識別異常項目使用情況。Google Cloud Platform 提供 Stackdriver 日誌記錄。Stackdriver Logging 使您可以從 Google Cloud Platform 上的應用程序和服務收集和存儲日誌。您可以使用日誌記錄創建基於日誌的度量標準,以監視和警告異常行為。有關更多信息,請參閱Stackdriver 日誌記錄文檔。調查任何可疑用法,以確保您的實例未被惡意軟件劫持。
避免帳單帳戶被停權的方法
請填寫正確的付款資訊、並提供多張信用卡,以確保不會因單一張信用卡問題造成欠費。也可直接請經銷商進行費用代繳,由於經銷商與 Google 有契約關係,不會受到自動規則停權的影響。
※ 詳情可參考Google 官方說明
希望此文可以降低 GCP 用戶的恐懼,尤其是已經有大型專案在 GCP 上運作的客戶,藉由上述方式去避免無預警停權的可能!