Istio 1.3 中密钥发现服务的变更
利用 Kubernetes 可信 JWT 更安全地为工作负载实例颁发证书。
在 Istio 1.3 中,我们利用 Kubernetes 的改进,以更安全的方式为工作负载实例颁发证书。
当 Citadel 代理向 Citadel 发送证书签名请求以获取工作负载实例的证书时,它会包含 Kubernetes API 服务器发出的 JWT,该 JWT 代表工作负载实例的服务帐户。如果 Citadel 可以验证 JWT,它会提取为工作负载实例颁发证书所需的帐户名称。
在 Kubernetes 1.12 之前,Kubernetes API 服务器发出的 JWT 存在以下问题
Kubernetes 1.12 引入了 trustworthy
JWT 来解决这些问题。但是,支持 aud
字段具有不同于 API 服务器受众的值直到 Kubernetes 1.13 才可用。为了更好地保护网格,Istio 1.3 仅支持 trustworthy
JWT,并且在启用 SDS 时要求 aud
字段的值为 istio-ca
。在将您的 Istio 部署升级到启用了 SDS 的 1.3 之前,请验证您使用的是 Kubernetes 1.13 或更高版本。
根据您选择的平台,请考虑以下事项
- **GKE:**将您的集群版本升级到至少 1.13。
- **本地 Kubernetes** 和 **本地 GKE:**将 额外配置 添加到您的 Kubernetes 中。您可能还需要参考 api-server 页面 以获取最新的标志名称。
- 对于其他平台,请咨询您的提供商。如果您的供应商不支持可信 JWT,则需要回退到文件挂载方法,以在 Istio 1.3 中传播工作负载密钥和证书。