Envoy需要管理员特权的原因是什么,可以避免吗?

时间:2018-07-16 19:25:33

标签: load-balancing istio

我想将Envoy用作与kubernetes一起运行的L7负载均衡器实现,但是我不能授予它admin访问权限,因为这是我必须担心的安全性问题。一些研究告诉我,Envoy需要管理员访问权限才能修改某些IP表,但是Pod中的其他容器也需要管理员访问权限吗?如果是这样,为什么?并且存在解决方法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

根据说明,您应该使用Envoy用户UID(如在Istio中)创建iptables规则。

sudo iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-port 5001

sudo iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 5001 -m owner '!' --uid-owner ${Envoy_User_UID}

要运行此规则,需要在启动Envoy之前创建具有${Envoy_User_UID}的新用户。然后,Envoy必须在此用户ID下运行,以使来自Envoy的数据包不会重定向到自己。

另一方面,您可以使用Ambassador-这是为Kubernetes设计的Envoy的开源发行版。

如何部署和配置“大使”,您可以在Envoy as an API Gateway in Kubernetes说明中找到。

您可以在Setup IP tables rules to redirect inbound/outbound traffic to Envoy sidecar页上找到更多详细信息。 另外,Use Envoy as tcp/http proxy for all outbound traffic可能会有用。