Chạy AI agent an toàn trên Kubernetes với OpenShell
OpenShell, một dự án mới thuộc CNCF Sandbox từ NVIDIA, cung cấp các điều khiển runtime chi tiết cho AI agents trên Kubernetes bằng cách sử dụng Agent Sandbox và cơ chế thực thi chính sách dựa trên supervisor.
Được dịch tự động từ bản gốc tiếng Anh.
OpenShell của NVIDIA đã gia nhập CNCF Sandbox với tư cách là một runtime chuyên dụng để thực thi AI agents một cách an toàn trong các cụm Kubernetes. Được phát hành vào cuối năm 2026, công cụ này giải quyết các rủi ro bảo mật liên quan đến các agent tự động thực hiện lệnh shell, truy cập tệp và quản lý kết nối mạng khi nắm giữ các thông tin xác thực nhạy cảm. Bằng cách tích hợp với dự án Agent Sandbox từ SIG Apps, OpenShell cho phép các kỹ sư nền tảng áp dụng các chính sách nghiêm ngặt theo từng yêu cầu mà không làm mất đi khả năng hiển thị đối với các đối tượng Kubernetes tiêu chuẩn.
Chuyện gì đã xảy ra
Các AI agent ngày càng có khả năng thực hiện những tác vụ phức tạp vượt xa các cuộc gọi API đơn giản, chẳng hạn như cài đặt gói, đọc tệp cục bộ và mở socket mạng. Vì các agent này thường hoạt động dựa trên dữ liệu không đáng tin cậy được tải từ internet, chúng tạo ra rủi ro bảo mật lớn khi được cấp quyền truy cập vào các thông tin xác thực thật. OpenShell được phát triển để coi mỗi agent là mã không đáng tin cậy, chạy từng agent trong một sandbox cô lập nơi một supervisor đáng tin cậy phê duyệt rõ ràng mọi hành động.
Dự án sử dụng cấu hình dựa trên YAML để khai báo bốn loại kiểm soát cụ thể: truy cập hệ thống tệp qua Landlock, đặc quyền tiến trình sử dụng seccomp và người dùng non-root, quy tắc lưu lượng mạng cho từng binary và host, cùng với quản lý thông tin xác thực chỉ thay thế các giá trị giữ chỗ bằng khóa thật tại các endpoint được phép. Khác với bảo mật container truyền thống, OpenShell có thể phân biệt giữa các hành động khác nhau do cùng một binary thực hiện, chẳng hạn như cho phép yêu cầu GET tới GitHub trong khi chặn yêu cầu POST, đồng thời nó có thể cập nhật các chính sách này trên các sandbox đang chạy mà không cần khởi động lại.
Đối với các quản trị viên Kubernetes, OpenShell tận dụng các công cụ sinh thái hiện có thay vì thay thế chúng. Nó không bao gồm scheduler riêng mà dựa vào Agent Sandbox để chuyển đổi các định nghĩa agent thành các tài nguyên Kubernetes tiêu chuẩn như Pods, Services và NetworkPolicies. Cách tiếp cận này đảm bảo rằng các agent vẫn hiển thị với các công cụ vận hành hiện có như kubectl, nhật ký kiểm toán (audit logs) và các engine chính sách như Kyverno, đồng thời bổ sung thêm một lớp kiểm soát chi tiết mà các tài nguyên Kubernetes gốc không thể cung cấp.
Cách thức hoạt động
Kiến trúc xoay quanh một gateway quản lý vòng đời của mỗi sandbox và một pod supervisor đóng vai trò trung gian cho tất cả giao tiếp của một agent cụ thể. Khi người dùng tạo một sandbox thông qua API gateway của OpenShell, hệ thống sẽ tạo ra một tài nguyên Agent Sandbox ở trạng thái tạm dừng (suspended). Sau đó, controller tạo một pod workload với các cổng lịch trình (scheduling gates) nghiêm ngặt, đảm bảo không có quyền truy cập mạng outbound nào tồn tại cho đến khi supervisor sẵn sàng. Supervisor xác thực với gateway bằng danh tính gắn liền với namespace và UID của sandbox, thiết lập một kênh bảo mật tới workload.
Khi supervisor kết nối, nó thực thi các chính sách đã khai báo trước khi lệnh của agent bắt đầu chạy. Mọi yêu cầu outbound từ agent đều bị supervisor chặn lại, kiểm tra đích, cổng, binary gọi và phương thức HTTP so với chính sách đang hoạt động. Nếu yêu cầu được phép, supervisor mở kết nối upstream; nếu bị từ chối, yêu cầu bị chặn ngay lập tức. Mô hình này cho phép cập nhật chính sách động, nơi các thay đổi được tải và xác nhận bởi sandbox mà không cần khởi động lại hoặc tạm dừng toàn bộ pod.
Chi tiết chính
- OpenShell sử dụng tài nguyên
agents.x-k8s.ioSandbox từ SIG Apps, ánh xạ các agent sang các Pod và Service Kubernetes tiêu chuẩn. - Việc cô lập hệ thống tệp được xử lý bởi Landlock, hạn chế quyền ghi vào các đường dẫn cụ thể như
/sandboxvà/tmptrong khi giữ các thư mục hệ thống ở chế độ chỉ đọc. - Các chính sách mạng được thực thi bởi một supervisor kiểm tra lưu lượng theo từng binary, cho phép các quy tắc chi tiết như cho phép
curlđọc nhưng chặn ghi. - Thông tin xác thực không bao giờ được phơi bày trực tiếp cho agent; supervisor thay thế các giá trị giữ chỗ bằng API keys thật chỉ tại các endpoint được phép.
- Việc tạo sandbox hiện tại yêu cầu gọi trực tiếp Gateway API, vì chưa có CRD Kubernetes gốc cho các sandbox OpenShell.
- Môi trường demo chạy trên Kubernetes 1.35 với Cilium 1.20, Agent Sandbox v1.0.5 và Kyverno 1.18.2 cho việc kiểm soát admission.
Tại sao điều này quan trọng
Đối với các nhóm xây dựng nền tảng dựa trên AI, thách thức chính là cân bằng giữa tính tự chủ của agent và tuân thủ bảo mật. Các NetworkPolicies Kubernetes truyền thống có thể hạn chế pod nào được nói chuyện với host nào, nhưng chúng không thể kiểm tra nội dung lưu lượng hoặc ý định của ứng dụng đưa ra yêu cầu. OpenShell lấp đầy khoảng trống này bằng cách cung cấp thực thi chính sách nhận biết ứng dụng (application-aware), đảm bảo rằng một agent không thể vô tình hoặc độc hại đánh cắp dữ liệu hoặc sửa đổi các hệ thống production ngay cả khi nó xâm phạm runtime container.
Hơn nữa, OpenShell duy trì khả năng tương thích với các quy trình vận hành Kubernetes hiện có. Vì các agent xuất hiện dưới dạng pods và services tiêu chuẩn, các kỹ sư nền tảng không cần phải học một stack observability hoàn toàn mới. Họ có thể tiếp tục sử dụng các công cụ quen thuộc cho logging, giám sát và kiểm soát truy cập dựa trên vai trò (RBAC), đồng thời dựa vào OpenShell để xử lý các yêu cầu bảo mật tinh vi của các agent tự động. Điều này giảm thiểu gánh nặng vận hành khi áp dụng AI agents trong môi trường doanh nghiệp, nơi tính minh bạch (auditability) và quyền truy cập tối thiểu (least-privilege access) là bắt buộc.
Bạn có thể làm gì
- Cài đặt Cilium làm CNI để đảm bảo cả NetworkPolicies ingress và egress được thực thi hiệu quả trong cụm của bạn.
- Triển khai controller Agent Sandbox và các CRDs trước khi cài đặt Helm chart gateway OpenShell để thiết lập hạ tầng cần thiết.
- Sử dụng Kyverno hoặc các engine chính sách tương tự để thực thi kiểm soát admission trên các image sandbox, giới hạn tài nguyên và quy tắc RBAC.
- Định nghĩa các workspace trong OpenShell để nhóm các sandbox, chính sách và nhật ký nhằm dễ dàng quản lý và kiểm toán hoạt động của agent.
- Kiểm thử các bản cập nhật chính sách trên các sandbox đang chạy để xác minh rằng các thay đổi quy tắc động được áp dụng mà không làm gián đoạn quá trình thực thi của agent.
- Xem xét lộ trình (roadmap) của OpenShell để biết về hỗ trợ tương lai cho các CRD Kubernetes-native và các tùy chọn triển khai linh hoạt cho môi trường quy mô lớn.



