Istio 1.3 中 Secret Discovery Service 的變更
利用 Kubernetes 可信任的 JWT,更安全地為工作負載實例發放憑證。
在 Istio 1.3 中,我們利用 Kubernetes 的改進,更安全地為工作負載實例發放憑證。
當 Citadel Agent 向 Citadel 發送憑證簽署請求,以獲取工作負載實例的憑證時,它會包含 Kubernetes API 伺服器發出的 JWT,該 JWT 代表工作負載實例的服務帳戶。如果 Citadel 可以驗證 JWT,它會提取發放工作負載實例憑證所需的服務帳戶名稱。
在 Kubernetes 1.12 之前,Kubernetes API 伺服器發出的 JWT 存在以下問題:
Kubernetes 1.12 引入了 可信任
JWT 來解決這些問題。但是,直到Kubernetes 1.13,才支援 aud
欄位具有與 API 伺服器受眾不同的值。為了更好地保護網格,當您啟用 SDS 時,Istio 1.3 僅支援 可信任
JWT,並要求 aud
欄位的值為 istio-ca
。在將您的 Istio 部署升級到已啟用 SDS 的 1.3 版本之前,請驗證您是否使用 Kubernetes 1.13 或更高版本。
根據您選擇的平台考慮以下事項:
- GKE: 將您的叢集版本升級到至少 1.13。
- On-prem Kubernetes 和 GKE on-prem:將額外配置新增到您的 Kubernetes。您也可以參考api-server 頁面以取得最新的標誌名稱。
- 對於其他平台,請諮詢您的供應商。如果您的供應商不支援可信任的 JWT,您需要回退到檔案掛載方法,以在 Istio 1.3 中傳播工作負載金鑰和憑證。