我已经使用kops和入口nginx控制器在aws上部署了应用程序。
据我了解,入口控制器看起来可以公开展示群集中部署的每个服务。因此,这使我对安全性和身份验证感到疑惑。
我的项目的架构是什么? 我在集群中部署了3个服务:
-client-ui(前端)
-authentication-api(创建/生成/验证JWT令牌并调用其他服务,例如data-api)
-data-api(在数据库中创建/读取/更新/删除敏感数据的API)
所以问题是:如果Ingress控制器公开了所有服务,如果不允许用户访问,则如何限制对特定服务的访问?
在这种情况下,只能从authentication-api访问data-api。因此,如果我在浏览器中输入 www.client-ui.com/data/getXXX显然我不应该能够访问该端点。如果他的jwt令牌已经过验证,我应该只能从authentication-api进行操作。
所以我想某些api应该只能从集群内部访问,而某些api应该是公开的!?
您能解释一下我该怎么做吗?
谢谢
答案 0 :(得分:1)
根据云提供商的不同,入口服务上会有不同的注释。您想要的是特定入口资源的内部负载平衡器。 对于您的情况(AWS),应为:
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
请参阅: