網路安全的最佳做法
無論您是從 Compute Engine 執行個體、Cloud Storage bucket 或位於 Google Cloud外部的外部來源提供內容,Cloud CDN 和 Cloud Load Balancing 都能協助您符合網路安全最佳做法。
設定安全標頭
HTTP 規格有許多標頭,可控管下列項目:
- 用戶端行為
- 內容的嵌入方式
- 如何跨網域提供內容
- 連線至該網域時是否一律使用傳輸層安全標準 (HTTPS)
這些控制項通常會以 HTTP 回應標頭表示,您可以為每個後端 (以 CDN 來說是「來源」) 設定自訂回應標頭,用於外部應用程式負載平衡器和 Cloud CDN 部署作業。
如果您使用 Cloud Storage 並從 bucket 提供網路內容,可以在 Storage bucket 前方使用 Cloud CDN,設定網路安全標頭並快取熱門內容。
下表定義最實用的網路安全標頭。
| 標頭名稱 | 說明 | 應用實例 |
|---|---|---|
Strict-Transport-Security (HTTP 嚴格傳輸安全性) |
設定這個標頭前,請確保網域具有有效的 SSL (TLS) 憑證。 告知用戶端必須透過 HTTPS (SSL/TLS) 直接連線至您的網域,避免從 HTTP 重新導向至 HTTPS,因為這樣速度較慢,且會帶來中間人攻擊的風險。 設定這個標頭後,就無法復原。快取這個標頭後,新式瀏覽器用戶端就不會嘗試非 HTTPS 連線,使用者也無法存取收到這個標頭的任何網域,即使 SSL 服務中斷也一樣。這項行為可防止攻擊者將安全通訊協定降級為未受保護的 HTTP (稱為「降級攻擊」)。
提供 |
要求用戶端在所有未來的連線中,都必須透過 HTTPS 直接連線,並將這項指令快取最多兩年:
|
X-Frame-Options |
指出瀏覽器是否可以在 <frame>、<iframe>、<embed> 或 <object> 中顯示頁面。這有助於防止「點閱綁架」攻擊,因為這樣一來,您的內容就不會嵌入其他網站。 |
禁止以 iframe 方式顯示網站內容:X-Frame-Options: DENY
僅允許網站自行 iframe (嵌入): |
Content-Security-Policy
|
如要評估網站的內容安全政策,可以使用 Google 的 CSP Evaluator 工具。 | 不允許內嵌指令碼,且只透過 HTTPS 載入指令碼:Content-Security-Policy: default-src https: |
在現有網站中導入新的安全性標頭時請務必謹慎,因為這可能會導致第三方指令碼、嵌入內容 (例如 iframe 中的內容) 或網站的其他方面發生問題。建議您先建立第二個後端 bucket 或後端服務執行個體並進行測試,再對正式版流量進行變更。
如要進一步瞭解網路安全標頭和最佳做法,請參閱 web.dev 和 Mozilla 的 infosec 網站。
TLS 和憑證管理
代管憑證具有下列特性:
- 免費提供
- 可輕鬆部署至負載平衡器
- 自動續約
- 在全球各地 Google 邊緣據點發布
TLS 會驗證資料在傳輸過程中是否遭到修改,確保資料的真實性。TLS 憑證可確保竊聽者無法判斷使用者和伺服器之間交換的內容,進而提供機密性。這對使用者隱私和安全至關重要。
有了 SSL 憑證,您就能使用 HTTP/2 和 Google 的 QUIC 通訊協定等新式傳輸通訊協定,這些通訊協定都需要 SSL (TLS)。這些通訊協定可直接提升網路內容、媒體傳遞 (例如串流影片) 的效能,以及壅塞網路的可靠性。
Google Cloud 支援 Cloud Load Balancing 和 Cloud CDN 服務的現代 TLS 通訊協定 (例如 TLS 1.3)。
您可以使用 SSL 政策提高最低 TLS 版本。如果不需要支援舊版用戶端 (例如嵌入式裝置或舊版 (超過 10 年) 非瀏覽器用戶端),建議將版本提升至 TLS v1.2。在全球各地,TLS v1.0 和 TLS v1.1 的連線比例不到 0.5% Google Cloud。如要識別或將特定用戶端與舊版 TLS 建立關聯,可以使用 {tls_version} 要求標頭中的變數。接著可記錄這項資訊。