如何阻止“kubectl exec”选项以及与集群上特定容器的任何其他外部连接

问题描述 投票:0回答:2

我有一个托管在 GKE 上的集群,我在此集群上有多个部署,
我可以使用

kubectl exec
连接到 pod:

kubectl exec -it mypod-1234566-7890976  -- bash

我想删除与

kubectl exec
连接到某个容器的选项

有没有办法通过阻止容器

DOCKERFILE
上的 ssh 来阻止连接到容器的选项?或者任何其他方式

kubernetes google-kubernetes-engine
2个回答
6
投票

要限制 pod 的

kubectl exec
能力,您需要创建一个自定义 Role & RoleBinding,删除
create
资源的
pods/exec
动词。一个简单的方法可能是复制默认的 RBAC 策略,然后进行适当的编辑和重命名。

由于 RBAC 的工作原理,您可以应用的最精细粒度是每个命名空间,但不可能将其过滤到特定的 pod/部署/等。

对于 pod 的其他入站外部连接,默认情况下这是不可能的,除非您创建了一个 Ingress 和/或 Service 来专门执行此操作。这是因为大多数提供商将使用私有 IP 地址范围作为节点 IP 和 Pod 网络,因此如果没有一些 NAT'ing 或代理,就无法从外部访问它们。

希望这有帮助。


0
投票

您可以使用正确的 rbac 配置来阻止对某些对象/资源的访问。

可能会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.