網路安全最佳做法

網路安全的最佳做法

無論您是從 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 (稱為「降級攻擊」)。

提供 Strict-Transport-Security 標頭時,請謹慎新增 includeSubdomainspreload 指令。這些指令會要求任何子網域使用 HTTPS,包括相同網域上的任何內部網站。例如,從 example.com 提供時為 support.example.com

要求用戶端在所有未來的連線中,都必須透過 HTTPS 直接連線,並將這項指令快取最多兩年:

Strict-Transport-Security: max-age=3104000

X-Frame-Options 指出瀏覽器是否可以在 <frame>、<iframe>、<embed> 或 <object> 中顯示頁面。這有助於防止「點閱綁架」攻擊,因為這樣一來,您的內容就不會嵌入其他網站。 禁止以 iframe 方式顯示網站內容:X-Frame-Options: DENY

僅允許網站自行 iframe (嵌入):X-Frame-Options: SAMEORIGIN

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} 要求標頭中的變數。接著可記錄這項資訊。

後續步驟

  • 如要確認 Cloud CDN 是否從快取提供回應,請參閱「查看記錄」。
  • 如要瞭解哪些內容可快取或不可快取,請參閱「快取總覽」。
  • 如要查看 Cloud CDN 的網路連接點,請參閱「快取位置」。