kubernetes 带客户端证书认证的Ingress [已关闭]

uqcuzwp8  于 5个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(71)

**已关闭。**此问题为not about programming or software development。目前不接受回答。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
14天前关门了。
Improve this question
我有一个需要客户端认证保护的服务。

nginx.ingress.kubernetes.io/auth-tls-secret: "namespace/ca-chain"
nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"
nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true"

字符串
然后我将ssl-client-verify头部的值SUCCESS发送到我的后端。如果设置了这个值,我就知道客户端证书被正确验证了。
这是正确的设置吗?这个设置不是依赖于这样一个事实,即我的后端与我的入口紧密耦合,如果入口消失,一个坏的参与者可以发送一个请求,将ssl-client-verify头部设置为SUCCESS,我们让他进来。
我想到两个问题:
1.使用k8s中的标准入口设置,所有请求总是通过入口,并且没有请求可以绕过入口?从我所读到的,所有流量总是通过入口:https://kubernetes.io/docs/concepts/services-networking/ingress/#what-is-ingress
1.我应该自己验证链吗?我在头中获得客户端证书?我只有一个客户端,所以我实际上不需要做进一步的身份验证:如果他们有有效的客户端证书,我可以让他们进入
如果这是正确的模式,这是否意味着我们总是需要一些东西在我们的应用程序前面,如果我们决定将其移出k8s?如果我想在独立的服务器上运行它:然后我需要前面有一个nginx,配置一样,这样它就可以帮我处理客户端认证,否则一个坏演员可以调用我的nginx并将ssl-client-verify头部设置为SUCCESS,我们认为一切都很好。

k5ifujac

k5ifujac1#

在k8s中使用标准入口设置,所有请求总是通过入口,并且没有请求可以绕过入口?
是的。pod运行在一个隔离的网络命名空间中。如果没有额外的配置,就没有办法从外部访问它。如果ingress服务宕机,就没有办法绕过它。
我应该自己验证链吗?
你不能。只有执行SSL终止的服务才能执行证书验证。你的nginx入口正在处理SSL连接,所以这就是验证发生的地方。
如果你想自己处理SSL终止,你可能需要设置一个LoadBalancer类型的服务.但我不认为这会给你带来更多的复杂性。
如果这是正确的模式,这是否意味着我们,总是需要在我们的应用程序前面的东西,如果我们决定把它从k8s?
如果您在Kubernetes中使用前端代理处理身份验证.那么您还需要在Kubernetes之外使用前端代理处理身份验证。这是一种常见的模式。如果您想编写应用程序,以便它可以使用或不使用前端代理,那么您需要添加配置选项来启用/禁用该行为。

相关问题