Cloud Service Mesh 安全性總覽
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 1.6 以上版本中,系統會預設啟用自動 mTLS。透過自動 mTLS,用戶端 sidecar proxy 會自動偵測伺服器是否有 sidecar。用戶端 sidecar 會將 mTLS 傳送至含 sidecar 的工作負載,並將純文字傳送至不含 sidecar 的工作負載。不過請注意,服務會接受純文字和 mTLS 流量。為確保服務網格的安全,建議您將服務遷移至只接受 mTLS 流量的狀態。
如要進一步瞭解如何強制執行 mTLS,請參閱「Cloud Service Mesh 範例:mTLS」。
加密套件設定
以下清單包含 Cloud Service Mesh 的預設 FIPS 相容加密套件:
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
為提升安全性,Cloud Service Mesh 工作負載支援的伺服器端最低 TLS 版本為 1.2,可支援自訂加密套件。請注意,Cloud Service Mesh 也支援 TLS 1.3,該版本會將密碼組態硬式編碼,且不支援變更密碼組態。
如要進一步瞭解密碼組合,請參閱 Envoy 的常見 TLS 設定和 Istio 的雙向 TLS 驗證。
安全性優勢
Cloud Service Mesh 提供下列安全性優點:
降低使用遭竊憑證重播或冒用攻擊的風險。Cloud Service Mesh 會使用 mTLS 憑證驗證對等端,而非使用 JSON Web Token (JWT) 這類憑證。由於 mTLS 憑證會繫結至 TLS 管道,因此實際工作環境中的實體無法只透過重播驗證權杖,而無須存取私密金鑰,就模擬其他實體。
確保傳輸中資料加密。使用 mTLS 進行驗證,還可確保所有 TCP 通訊在傳輸期間都會加密。
確保只有經過授權的用戶端才能存取含有機密資料的服務。無論用戶端的網路位置和應用程式層級憑證為何,只有經過授權的用戶端才能存取含有機密資料的服務。您可以指定只有具有授權服務身分的用戶端,或位於授權 Kubernetes 命名空間中的用戶端,才能存取服務。您也可以使用 IP 存取政策,授予 GKE Enterprise 環境以外部署的用戶端存取權。
降低實際工作網路中的使用者資料侵害風險。您可以確保內部人員只能透過授權的用戶端存取機密資料。此外,您也可以確保特定用戶端只能在提供有效且短效的使用者權杖時,才能存取使用者資料。這麼做可降低單一用戶端憑證遭到入侵,進而讓攻擊者存取所有使用者資料的風險。
指出哪些用戶端存取了含有機密資料的服務。Cloud Service Mesh 存取記錄除了 IP 位址外,還會擷取用戶端的 mTLS 身分。因此,即使工作負載是短暫且動態部署,且位於不同的叢集或虛擬私有雲 (VPC) 網路中,您也能輕鬆瞭解哪項工作負載存取了服務。
功能
本節將說明 Cloud Service Mesh 提供的功能,以便您充分發揮其安全性優勢。
自動憑證和金鑰輪替
使用以服務身分為基礎的 mTLS,可加密所有 TCP 通訊,並提供更安全的不可重複播放憑證,用於存取權控管。大規模使用 mTLS 時,其中一個主要挑戰是管理所有目標工作負載的金鑰和憑證。Cloud Service Mesh 會為 GKE Enterprise 工作負載輪替 mTLS 金鑰和憑證,且不會中斷通訊。設定較短的憑證重新整理間隔,可以降低風險。
Cloud Service Mesh 憑證授權單位
Cloud Service Mesh 包含一個代管的多區域私人憑證授權單位 (Cloud Service Mesh 憑證授權單位),可為 mTLS 核發憑證。Cloud Service Mesh 憑證授權單位是一項可靠度高且可擴充的服務,可針對雲端平台上動態調整的工作負載進行最佳化。有了 Cloud Service Mesh 憑證授權單位,Google 就能管理 CA 後端的安全性和可用性。您可以使用 Cloud Service Mesh 憑證授權單位,在 GKE Enterprise 叢集中採用單一信任根。使用 Cloud Service Mesh 憑證授權單位時,您可以依賴工作負載身分集區提供粗粒度的隔離功能。根據預設,如果用戶端和伺服器不在同一個工作負載身分集區中,驗證作業就會失敗。
Cloud Service Mesh 憑證授權單位的憑證包含應用程式服務的下列資料:
- Google Cloud 專案 ID
- GKE 命名空間
- GKE 服務帳戶名稱
憑證授權單位服務
您可以將 Cloud Service Mesh 設定為使用憑證授權單位服務,做為 Cloud Service Mesh 憑證授權單位的替代方案,這類設定適合下列用途:
- 如果您需要不同的憑證授權單位,在不同叢集中簽署工作負載憑證。
- 如要使用 Istiod 自訂 CA 外掛程式憑證。
- 如需在受管理的 HSM 中備份簽署金鑰。
- 如果您屬於受嚴格監管的產業,且須遵守相關法規。
- 如要將 Cloud Service Mesh CA 鏈結至自訂企業根憑證,以便簽署工作負載憑證。
Cloud Service Mesh 憑證授權單位的費用已包含在 Cloud Service Mesh 定價中。CA 服務不包含在 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 網關或下游服務的存取權 (透過使用 side-car)。詳情請參閱「將 IAP 與 Cloud Service Mesh 整合」。
使用現有身分提供者驗證使用者
您可以將現有的 ID 提供者與 Cloud Service Mesh 整合,為已部署的工作負載提供以瀏覽器為基礎的使用者驗證和存取控制功能。詳情請參閱「設定 Cloud Service Mesh 使用者驗證」。
存取記錄和監控
Cloud Service Mesh 可確保 Google Cloud Observability 提供存取記錄和指標,並提供整合式資訊主頁,讓您根據這些資料瞭解服務或工作負載的存取模式。您也可以選擇設定私人目的地。Cloud Service Mesh 可讓您在可設定的時間範圍內,只記錄一次成功存取,以減少存取記錄中的雜訊。系統一律會記錄遭安全性政策拒絕或導致錯誤的要求。這樣一來,您就能大幅降低擷取、儲存及處理記錄檔的相關成本,同時不會遺漏重要安全信號。
符合 FIPS 規定
x86 架構中的所有叢集內控制層元件和 Proxy 都會使用 通過 FIPS 140-2 驗證的加密模組。
限制
Cloud Service Mesh 安全性目前有以下限制:
- 使用 IAP 的使用者驗證機制需要將服務發布到網際網路。IAP 和 Cloud Service Mesh 可讓您設定政策,限制在允許的 IP 範圍內,授權使用者和用戶端的存取權。如果您選擇只向同一個網路中的用戶端公開服務,就必須設定自訂政策引擎,用於使用者驗證和權杖核發作業。