gpt4 book ai didi

django - 如何在 Azure Kubernetes 服务上向公众隐藏 Django Admin,同时通过后门保持访问

转载 作者:行者123 更新时间:2023-12-02 12:01:42 25 4
gpt4 key购买 nike

我正在 Azure Kubernetes 服务上运行 Django 应用程序,出于安全目的,我想要执行以下操作:

  • 完全封锁公众的管理门户(例如,普通人无法访问 mysite.com/admin)
  • 允许通过某些后门(例如专用网络、跳转主机等)进行访问

一种情况是运行两个完全独立的服务:1) 应用程序的主要 API 部分,它只是管理禁用的主要代码库。这是公开服务的。 2) 某些防火墙后面的私有(private)站点已启用管理员。每个都可以位于具有不同 FQDN 的不同集群上,但都连接到同一数据存储。这绝对是矫枉过正 - 必须有一种方法将所有内容保留在集群内。

我认为可能有一种方法可以配置 Azure 网络层来阻止/允许来自特定 IP 范围的流量,并在每个端点的基础上执行此操作(例如 mysite.com/adminmysite.com/api/1/test 相比)。或者,也许这在每个子域级别上都是可行的(例如 api.mysite.com/anythingadmin.mysite.com/anything)。

这也可能在 Kubernetes 入口层可行,但我不知道如何实现。

满足这两个要求的最简单方法是什么?

最佳答案

您可以在入口级别管理限制:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/whitelist-source-range: "192.168.0.XXX, 192.175.2.XXX"
name: staging-ingress
namespace: default
spec:
rules:
- host: test.example.io
http:
paths:
- backend:
serviceName: service-name
servicePort: 80
tls:
- hosts:
- test.example.io
secretName: tls-cert

您可以将 IP 地址列入白名单,以允许特定路径来解决您的后门问题。对于其他情况,您可以创建另一个入口规则,并删除公共(public)访问的注释。

对于特定路径:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/whitelist-source-range: "192.168.0.XXX, 192.175.2.XXX"
name: staging-ingress
namespace: default
spec:
rules:
- host: test.example.io
http:
paths:
- path : /admin
backend:
serviceName: service-name
servicePort: 80
tls:
- hosts:
- test.example.io
secretName: tls-cert

test.example.io/admin 只能通过源范围访问。

关于django - 如何在 Azure Kubernetes 服务上向公众隐藏 Django Admin,同时通过后门保持访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60751960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com