我在Azure Kubernetes集群的Nginx pod上运行了一个Angular主应用,应用内有一个iframe。当我们单击iframe时,它会打开一个单独的聊天机器人Angular应用,该应用正在另一个Nginx pod上运行。如何限制聊天机器人Angular应用的访问权限,使用户只能通过主应用访问聊天机器人应用,而不能通过聊天机器人的URL?
从DevOps的Angular 来看,我已经尝试过:1] K8s服务通信:-从父angular pod,我们可以使用URL连接到angular应用程序,如:- chatbot-svc-name.chatbot-namespace-name.svc.cluster.local:8082
我还编写了ingressroute(traefik)来路由流量:- Host(chatbot-svc-name.chatbot-namespace-name.svc.cluster.local
)&& PathPrefix(/chatbot-client
)
但我无法在家长应用程序中访问聊天机器人应用程序。
2]尝试以下网络策略:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-external-access
namespace: chatbot-ns
spec:
podSelector:
matchLabels:
app: chatbot-client
ingress:
- from:
- namespaceSelector:
matchLabels:
project: main-app
podSelector:
matchLabels:
app: main-client
字符串
但是就像k8s服务通信一样,当我试图使用iframe在浏览器中打开时,它在主应用程序中不起作用。
限制聊天机器人Angular应用程序的访问权限,使用户只能通过主应用程序访问聊天机器人应用程序,而不能通过聊天机器人的URL
1条答案
按热度按时间nwsw7zdq1#
为了限制对聊天机器人Angular应用程序的访问,使用户只能通过主应用程序而不是通过聊天机器人的URL访问它,您可以创建一个Kubernetes服务来将聊天机器人Angular应用程序暴露给主应用程序。
字符串
这将在
chatbot-ns
命名空间中创建一个名为chatbot-svc
的服务。该服务将把聊天机器人Angular应用上的端口8082
暴露给服务节点上的端口8082
。结合上述服务和您创建的网络策略,Kubernetes服务将把聊天机器人Angular应用暴露给主应用,网络策略将限制对聊天机器人Angular应用程序的访问到主应用程序。您也可以使用创建网络策略。型
所以你们要做三件事-
1.为聊天机器人Angular应用程序创建Kubernetes服务。
1.为聊天机器人Angular应用创建Kubernetes网络策略。
1.更新主应用程序以使用Kubernetes服务访问聊天机器人Angular应用程序。
配置Kubernetes服务和网络策略后,您可以使用以下URL从主应用程序访问聊天机器人Angular应用程序:
型