Cloud Service Mesh 安全性總覽
搭配 Istio API 安全性功能的 Cloud Service Mesh,可確保工作負載間的所有通訊都經過加密、雙向驗證與授權,有效減少內部威脅,並降低資料侵害風險。
傳統上,使用 IP 規則的微型區隔功能已用於降低內部風險。不過,如果採用容器、共用服務和分散式實際工作環境,並且分散在多個雲端,這種做法就會變得更難設定,甚至更難維護。
您可以使用 Cloud Service Mesh 設定一層服務情境感知和要求情境感知的網路安全性,不受基礎網路安全性影響。因此,Cloud Service Mesh 可讓您採用符合「零信任」安全性原則的縱深防禦架構。您可以透過宣告式政策實現此狀態,且無須修改任何應用程式程式碼。
雙向傳輸層安全標準 (mTLS)
Cloud Service Mesh 會使用相互傳輸層安全標準 (mTLS) 進行對等驗證。驗證是指身分驗證:這項服務是誰?使用者是誰?我可以信任他們所提供的身分嗎?
mTLS 可讓工作負載驗證彼此身分,並相互驗證。您可能熟悉簡易 TLS,因為它可在 HTTPS 中使用,讓瀏覽器信任網路伺服器,並加密交換的資料。使用簡易 TLS 時,用戶端會驗證伺服器的憑證,藉此確認伺服器可信任。mTLS 是 TLS 的一種實作方式,其中用戶端和伺服器會彼此出示憑證,並驗證彼此的身分。
mTLS 是 Cloud Service Mesh 在服務之間實作驗證和加密的一種方式。
在 Cloud Service Mesh 中,系統預設會啟用自動 mTLS。透過自動 mTLS,用戶端輔助程式 Proxy 會自動偵測伺服器是否有輔助程式。用戶端側載會將 mTLS 傳送至含有側載的工作負載,並將純文字傳送至不含側載的工作負載。不過請注意,服務會接受純文字和 mTLS 流量。為確保服務網格的安全,建議您將服務遷移至只接受 mTLS 流量的狀態。
如要進一步瞭解如何強制執行 mTLS,請參閱「Cloud Service Mesh 範例:mTLS」。
安全性優勢
Cloud Service Mesh 提供下列安全性優點:
降低使用遭竊憑證重播或冒用攻擊的風險。Cloud Service Mesh 會使用 mTLS 憑證驗證對等端,而非 JSON Web Token (JWT) 這類的權杖。由於 mTLS 憑證會繫結至 TLS 管道,因此實際環境中的實體無法在不存取私密金鑰的情況下,透過重播驗證權杖來冒用其他實體。
確保傳輸中資料加密。使用 mTLS 進行驗證,還可確保所有 TCP 通訊在傳輸期間都會加密。
確保只有經過授權的用戶端才能存取含有機密資料的服務。無論用戶端的網路位置和應用程式層級憑證為何,只有經過授權的用戶端才能存取含有機密資料的服務。您可以指定只有具有授權服務身分的用戶端,或位於授權 Kubernetes 命名空間中的用戶端,才能存取服務。您也可以使用 IP 存取政策,授予在網格外部署的用戶端存取權。
降低實際工作網路中的使用者資料侵害風險。您可以確保內部人員只能透過授權的用戶端存取機密資料。此外,您也可以確保特定用戶端只能在提供有效且短效的使用者權杖時,才能存取使用者資料。這麼做可降低單一用戶端憑證遭到入侵,進而讓攻擊者存取所有使用者資料的風險。
指出哪些用戶端存取了含有機密資料的服務。除了 IP 位址之外,Cloud Service Mesh 存取記錄也會擷取用戶端的 mTLS 身分。因此,即使工作負載是短暫且動態部署,且位於不同的叢集或虛擬私有雲 (VPC) 網路中,您還是可以瞭解哪個工作負載存取了服務。
功能
本節將說明 Cloud Service Mesh 提供的功能,以便您充分發揮安全性效益。
自動憑證和金鑰輪替
使用以服務身分為基礎的 mTLS,可加密所有 TCP 通訊,並提供更安全的不可重複播放憑證,用於存取權控管。大規模使用 mTLS 時,其中一個主要挑戰是管理所有目標工作負載的金鑰和憑證。Cloud Service Mesh 會為網格工作負載輪替 mTLS 金鑰和憑證,不會中斷通訊。設定較短的憑證重新整理間隔,可以降低風險。
Cloud Service Mesh 憑證授權單位
Cloud Service Mesh 包含一個代管的多區域私人憑證授權單位 Cloud Service Mesh 憑證授權單位,可為 mTLS 核發憑證。Cloud Service Mesh 憑證授權單位是一項可靠度高且可擴充的服務,可針對雲端平台上動態調整的工作負載進行最佳化。有了 Cloud Service Mesh 憑證授權單位,Google 就能管理 CA 後端的安全性和可用性。Cloud Service Mesh 憑證授權單位可讓您在各叢集間使用單一信任根。使用 Cloud Service Mesh 憑證授權單位時,您可以依賴工作負載身分集區提供粗粒度的隔離功能。根據預設,如果用戶端和伺服器不在同一個工作負載身分池中,驗證作業就會失敗。
Cloud Service Mesh 憑證授權單位的憑證包含應用程式服務的下列資料:
- Google Cloud 專案 ID
- GKE 命名空間
- GKE 服務帳戶名稱
憑證授權單位服務
您可以將 Cloud Service Mesh 設定為使用憑證授權單位服務,做為 Cloud Service Mesh 憑證授權單位的替代方案,這類設定適合下列用途:
- 如果您需要不同的憑證授權單位,在不同叢集中簽署工作負載憑證。
- 如需在受管理的 HSM 中備份簽署金鑰。
- 如果您屬於受嚴格監管的產業,且須遵守相關法規。
- 如要將 Cloud Service Mesh CA 鏈結至自訂企業根憑證,以便簽署工作負載憑證。
Cloud Service Mesh 憑證授權單位的費用已包含在 Cloud Service Mesh 的定價中。憑證授權單位服務的費用不包含在 Cloud Service Mesh 的基本價格中,而是另外收費。此外,CA 服務提供明確的服務水準協議,但 Cloud Service Mesh 憑證授權單位則沒有。
針對這項整合,Cloud Service Mesh 中的所有工作負載都會獲得兩個 IAM 角色:
身分感知存取權控管 (防火牆) 政策
透過 Cloud Service Mesh,您可以設定以 mTLS 身分而非對等端 IP 位址為依據的網路安全性政策。這樣一來,您就能建立與工作負載網路位置無關的政策。僅支援在同一個 Google Cloud 專案中,叢集之間的通訊。
要求宣告感知存取權控管 (防火牆) 政策
除了 mTLS 身分外,您還可以根據 HTTP 或 gRPC 要求的 JWT 標頭中的要求宣告,授予存取權。Cloud Service Mesh 可讓您斷言 JWT 是由信任實體簽署。也就是說,您可以設定政策,只在存在要求要求或符合指定值時,允許特定用戶端存取。
使用 Identity-Aware Proxy 驗證使用者
您可以使用Identity-Aware Proxy (IAP),驗證存取 Cloud Service Mesh 入口網關上公開的任何服務的使用者。IAP 可驗證透過瀏覽器登入的使用者、整合自訂身分識別提供者,並發出短期 JWT 權杖或 RCToken,然後可用於授予 Ingress 網關或下游服務的存取權 (透過側邊車)。詳情請參閱「將 IAP 與 Cloud Service Mesh 整合」。
使用現有身分提供者驗證使用者
您可以將現有的身分識別提供者與 Cloud Service Mesh 整合,為已部署的工作負載提供以瀏覽器為基礎的使用者驗證和存取權控管功能。詳情請參閱「設定 Cloud Service Mesh 使用者驗證」。
存取記錄和監控
Cloud Service Mesh 可確保 Google Cloud Observability 提供存取記錄和指標,並提供整合式資訊主頁,讓您根據這些資料瞭解服務或工作負載的存取模式。
符合 FIPS 規定
資料層元件會使用 經 FIPS 140-2 驗證的加密模組。
限制
Cloud Service Mesh 安全性有以下限制:
- 使用 IAP 的使用者驗證機制需要將服務發布到網際網路。IAP 和 Cloud Service Mesh 可讓您設定政策,限制授權使用者和客戶端在允許的 IP 範圍內存取服務。如果您選擇只將服務公開給同一個網路中的用戶端,就需要設定自訂政策引擎,以便進行使用者驗證和權杖核發作業。