web_fetch của trợ lý AI tải xuống) được lấy bởi dịch vụ linked-url-proxy bên trong mọi pod Ayakaleaf Pro. Dịch vụ này từ chối các địa chỉ không công khai, nên người dùng không thể đọc các dịch vụ nội bộ thông qua nó. Tính năng và các thiết lập của nó được mô tả trong URL bên ngoài.
Cấu hình
30-config.yaml (additions)
Những gì bị chặn trên Kubernetes
Proxy từ chối mọi địa chỉ không phải là địa chỉ unicast công khai: loopback, link-local (bao gồm địa chỉ metadata của cloud169.254.169.254), các dải riêng 10.0.0.0/8, 172.16.0.0/12 và 192.168.0.0/16, dải carrier-grade NAT 100.64.0.0/10, và các dải IPv6 tương ứng. Do đó, các mạng Pod và Service nằm trong những dải này, vốn là mặc định của kubeadm, flannel, Calico và hầu hết các cluster được quản lý, đều bị chặn mà không cần thiết lập nào, và các tên nội bộ cluster như redis hay git-bridge phân giải tới chúng cũng vậy.
Các địa chỉ công khai được cho phép. Nếu các node hoặc load balancer của bạn có địa chỉ công khai, hãy thêm chúng vào OVERLEAF_LINKED_URL_BLOCKED_NETWORKS (phân tách bằng dấu cách hoặc dấu phẩy), để người dùng không thể lấy dữ liệu từ các NodePort hoặc một trang trạng thái thông qua chúng.
Khi đặt OVERLEAF_LINKED_URL_OUTBOUND_PROXY, tên máy chủ được proxy phân giải, nên chỉ những URL chứa địa chỉ IP mới được kiểm tra: proxy đó phải tự chặn các mạng nội bộ của bạn.
Nhiều replica
Không cần gì thêm: mỗi pod tải dữ liệu bằng linked-url-proxy riêng của mình với cùng thiết lập.Đã kiểm thử trên Kubernetes
Trên Kubernetes 1.37 với ba replica, mạng pod10.244.0.0/16 của flannel và mạng service 10.96.0.0/12 của kubeadm, proxy đã từ chối tải xuống từ ClusterIP của một Service, từ các tên nội bộ cluster redis, garage và overleaf-1.overleaf-hl.overleaf.svc.cluster.local, và từ địa chỉ của một node, mà không cần OVERLEAF_LINKED_URL_BLOCKED_NETWORKS. Các bài kiểm thử end-to-end của chúng tôi cũng đạt đối với việc từ chối loopback và địa chỉ metadata của cloud qua Import API, và đối với việc trợ lý AI chỉ đọc những trang mà OVERLEAF_LINKED_URL_ALLOWED_RESOURCES cho phép.
