Istio 1.3 中密钥发现服务的变更

利用 Kubernetes 可信 JWT 更安全地为工作负载实例颁发证书。

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

在 Istio 1.3 中,我们利用 Kubernetes 的改进,以更安全的方式为工作负载实例颁发证书。

当 Citadel 代理向 Citadel 发送证书签名请求以获取工作负载实例的证书时,它会包含 Kubernetes API 服务器发出的 JWT,该 JWT 代表工作负载实例的服务帐户。如果 Citadel 可以验证 JWT,它会提取为工作负载实例颁发证书所需的帐户名称。

在 Kubernetes 1.12 之前,Kubernetes API 服务器发出的 JWT 存在以下问题

  1. 令牌没有重要的字段来限制其使用范围,例如 audexp。有关更多信息,请参阅 绑定服务帐户令牌
  2. 令牌被安装到所有 Pod 上,无法选择退出。有关动机,请参阅 服务帐户令牌卷

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 或更高版本。

根据您选择的平台,请考虑以下事项

分享此文章