Istio 1.3 中 Secret Discovery Service 的變更

利用 Kubernetes 可信任的 JWT,更安全地為工作負載實例發放憑證。

2019 年 9 月 10 日 | 作者:Phillip Quy Le - Google

在 Istio 1.3 中,我們利用 Kubernetes 的改進,更安全地為工作負載實例發放憑證。

當 Citadel Agent 向 Citadel 發送憑證簽署請求,以獲取工作負載實例的憑證時,它會包含 Kubernetes API 伺服器發出的 JWT,該 JWT 代表工作負載實例的服務帳戶。如果 Citadel 可以驗證 JWT,它會提取發放工作負載實例憑證所需的服務帳戶名稱。

在 Kubernetes 1.12 之前,Kubernetes API 伺服器發出的 JWT 存在以下問題:

  1. 這些令牌沒有重要的欄位來限制其使用範圍,例如 audexp。有關更多資訊,請參閱繫結服務令牌
  2. 這些令牌會被掛載到所有 Pod 上,而無法選擇退出。有關動機,請參閱服務帳戶令牌磁碟區

Kubernetes 1.12 引入了 可信任 JWT 來解決這些問題。但是,直到Kubernetes 1.13,才支援 aud 欄位具有與 API 伺服器受眾不同的值。為了更好地保護網格,當您啟用 SDS 時,Istio 1.3 僅支援 可信任 JWT,並要求 aud 欄位的值為 istio-ca。在將您的 Istio 部署升級到已啟用 SDS 的 1.3 版本之前,請驗證您是否使用 Kubernetes 1.13 或更高版本。

根據您選擇的平台考慮以下事項:

分享這篇文章