安全管理 Webhook
Istio
有两个 webhook
,分别是 Galley
和 sidecar injector
。
Galley
负责验证 Kubernetes
资源,sidecar injector
负责将 sidecar
中注入 Istio
默认情况下,Galley
和 sidecar injector
管理它们自己 Webhook
的配置。如果出现漏洞(例如,缓冲区溢出)它们便会受到威胁,可能会带来一些安全隐患。所以,配置 Webhook
是一项权限很高的操作,因为 Webhook
会监控和更改所有 Kubernetes secrets
。
在以下示例中,攻击者破坏了 Galley
并修改了 Galley
的 webhook
配置,以便于窃听所有 Kubernetes
机密(clientConfig
攻击者对其进行了修改,将 secrets
资源改变为攻击者自己所拥有的服务)。
为了防止这种攻击,Istio
1.4 引入了一项新功能,可以使用 istioctl
更安全地管理 Webhook
:
istioctl
替代Galley
和sidecar injector
去管理Webhook
配置。Galley
和sidecar injector
已经被解除特殊权限,因此即便受到侵入,它们也无法更改Webhook
的配置。在配置
Webhook
前,istioctl
将验证Webhook
服务器是否已启动和该Webhook
服务器使用的证书链是否有效。这样可以减少在服务器就绪之前或服务器证书失效时可能发生的错误。
要尝试此新功能,请参阅 Istio Webhook 管理内容。