Arrakis在GCP上的部署:从虚拟机配置到安全运行的最佳实践
Arrakis在GCP上的部署:从虚拟机配置到安全运行的最佳实践
【免费下载链接】arrakisA fully customizable and self-hosted sandboxing solution for AI agent code execution and computer use. It features out-of-the-box support for backtracking, a simple REST API and Python SDK, automatic port forwarding, and secure MicroVM isolation. Perfect for safely running, testing, and backtracking multi-step agent workflows.项目地址: https://gitcode.com/gh_mirrors/arra/arrakis
Arrakis是一款功能强大的自托管沙箱解决方案,专为AI代理代码执行和计算机使用而设计。它提供了开箱即用的回溯支持、简单的REST API和Python SDK、自动端口转发以及安全的MicroVM隔离,是安全运行、测试和回溯多步骤代理工作流的理想选择。本文将详细介绍如何在Google Cloud Platform (GCP)上部署Arrakis,从虚拟机配置到安全运行的最佳实践,帮助新手和普通用户轻松上手。
为什么选择Arrakis进行沙箱隔离?
在当今AI快速发展的时代,安全地运行和测试AI代理代码变得越来越重要。Arrakis作为一款开源的自托管沙箱解决方案,具有以下核心优势:
- 强大的隔离能力:采用MicroVM技术,为每个AI代理创建独立的隔离环境,有效防止恶意代码对主机系统的攻击。
- 完整的回溯支持:可以轻松回溯到之前的状态,方便调试和测试多步骤代理工作流。
- 简单易用的API和SDK:提供REST API和Python SDK,便于开发人员集成和扩展。
- 自动端口转发:简化网络配置,使沙箱内的服务能够方便地被外部访问。
Arrakis的高-level架构如图所示,展示了其如何通过REST API与客户端和SDK进行交互,并利用MicroVM技术实现安全隔离。
GCP虚拟机配置:启用嵌套虚拟化
要在GCP上部署Arrakis,首先需要创建一个支持嵌套虚拟化的GCE虚拟机。嵌套虚拟化是运行MicroVM的关键,它允许在虚拟机内部再创建虚拟机,从而实现Arrakis的沙箱隔离功能。
步骤1:创建支持嵌套虚拟化的GCE实例
使用以下gcloud命令创建一个启用嵌套虚拟化的GCE虚拟机。请将$VM_NAME、$PROJECT_ID、$SERVICE_ACCOUNT和$ZONE替换为您自己的值:
VM_NAME=<your-vm-name> PROJECT_ID=<your-project-id> SERVICE_ACCOUNT=<your-service-account> ZONE=<your-zone> gcloud compute instances create ${VM_NAME} --project=${PROJECT_ID} --zone=${ZONE} --machine-type=n1-standard-1 --network-interface=network-tier=STANDARD,stack-type=IPV4_ONLY,subnet=default --maintenance-policy=MIGRATE --provisioning-model=STANDARD --service-account=${SERVICE_ACCOUNT} --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/trace.append --create-disk=auto-delete=yes,boot=yes,device-name=maverick-gcp-dev-vm3,image=projects/ubuntu-os-cloud/global/images/ubuntu-2204-jammy-v20250128,mode=rw,size=20,type=pd-standard --no-shielded-secure-boot --shielded-vtpm --shielded-integrity-monitoring --labels=goog-ec-src=vm_add-gcloud --reservation-affinity=any --enable-nested-virtualization步骤2:配置防火墙规则
为了允许外部访问Arrakis服务,需要创建相应的防火墙规则。以下命令将创建一个允许TCP端口3000-5000和7000入站流量的规则:
NETWORK_TAG=allow-ingress-ports FIREWALL_RULE=allow-ingress-ports-rule gcloud compute instances add-tags ${VM_NAME} --tags=${NETWORK_TAG} --zone=${ZONE} gcloud compute firewall-rules create ${FIREWALL_RULE} \ --direction=INGRESS \ --priority=1000 \ --network=default \ --action=ALLOW \ --rules=tcp:3000-5000,tcp:7000 \ --source-ranges=0.0.0.0/0 \ --target-tags=${NETWORK_TAG} \ --description="Allow TCP ingress on ports 3000-5000 and 7000 for VMs with the ${NETWORK_TAG} tag"一键安装Arrakis:简单高效的部署过程
完成虚拟机配置后,接下来就是安装Arrakis。Arrakis提供了一个便捷的安装脚本,可以一键完成所有必要组件的下载和配置。
步骤1:SSH连接到GCE虚拟机
使用gcloud命令或GCP控制台SSH连接到您刚刚创建的虚拟机。
步骤2:运行安装脚本
在虚拟机中执行以下命令,下载并运行Arrakis安装脚本:
cd $HOME curl -sSL "https://raw.githubusercontent.com/abshkbh/arrakis/main/setup/setup.sh" | bash安装脚本将自动创建目录结构、下载最新的Arrakis发布版本(包括REST服务器、客户端、根文件系统镜像、initramfs和配置文件),并设置必要的权限。安装完成后,您可以在arrakis-prebuilt目录中找到所有相关文件。
步骤3:验证安装
安装完成后,可以通过以下命令验证文件是否正确下载:
cd $HOME/arrakis-prebuilt ls您应该能看到arrakis-restserver、arrakis-client、config.yaml等文件。
启动Arrakis服务:REST服务器与客户端使用
安装完成后,就可以启动Arrakis服务并开始使用了。
步骤1:启动REST服务器
在终端中执行以下命令启动Arrakis REST服务器:
cd $HOME/arrakis-prebuilt sudo ./arrakis-restserver服务器启动后,将监听指定的端口(默认为7000),等待客户端连接。
步骤2:使用客户端创建沙箱
打开另一个终端,使用Arrakis客户端连接到REST服务器并创建沙箱:
cd $HOME/arrakis-prebuilt ./arrakis-client客户端将提供一个交互式界面,您可以通过简单的命令创建和管理沙箱。
步骤3:通过Python SDK使用Arrakis
除了命令行客户端,Arrakis还提供了Python SDK,可以更方便地集成到您的Python项目中。您可以通过以下命令安装Python SDK:
pip install py-arrakis然后在Python代码中导入并使用SDK:
import arrakis client = arrakis.ArrakisClient("http://localhost:7000") sandbox = client.create_sandbox() print(sandbox.id)Arrakis GUI界面:直观管理沙箱
Arrakis还提供了一个直观的GUI界面,方便用户管理和监控沙箱。通过浏览器访问虚拟机的IP地址和相应端口(例如http://<VM_IP>:8080),即可打开Arrakis GUI。
在GUI界面中,您可以轻松创建新沙箱、查看现有沙箱的状态、分配资源、进行端口转发等操作,极大地简化了沙箱管理流程。
安全运行最佳实践:保护您的AI代理工作流
在使用Arrakis时,遵循以下安全最佳实践可以确保您的AI代理工作流更加安全:
1. 限制网络访问
虽然我们在前面配置了防火墙规则允许特定端口的访问,但在实际生产环境中,应进一步限制源IP范围,只允许受信任的IP地址访问Arrakis服务。
2. 定期更新Arrakis
Arrakis团队会定期发布更新,修复安全漏洞和添加新功能。您可以通过以下命令更新Arrakis:
cd $HOME/arrakis-prebuilt ./setup.sh # 假设setup.sh支持更新功能3. 监控沙箱活动
通过Arrakis的日志功能或集成第三方监控工具,密切关注沙箱的活动情况,及时发现异常行为。
4. 合理配置资源限制
在config.yaml文件中,根据您的实际需求和虚拟机资源情况,合理配置每个沙箱的CPU、内存和磁盘资源限制,防止资源滥用。
总结:Arrakis——GCP上安全高效的AI沙箱解决方案
通过本文的介绍,您已经了解了如何在GCP上部署和使用Arrakis。从配置支持嵌套虚拟化的虚拟机,到通过一键脚本安装Arrakis,再到启动服务和使用客户端/SDK,整个过程简单明了,即使是新手用户也能轻松上手。
Arrakis的强大隔离能力、回溯支持和易用的API/SDK,使其成为在GCP上安全运行和测试AI代理代码的理想选择。无论是个人开发者还是企业用户,都可以利用Arrakis构建安全、高效的AI代理工作流。
如果您想深入了解Arrakis的更多功能和配置选项,可以参考项目的官方文档docs/detailed-README.md。开始您的Arrakis之旅,体验安全高效的AI沙箱隔离吧!
【免费下载链接】arrakisA fully customizable and self-hosted sandboxing solution for AI agent code execution and computer use. It features out-of-the-box support for backtracking, a simple REST API and Python SDK, automatic port forwarding, and secure MicroVM isolation. Perfect for safely running, testing, and backtracking multi-step agent workflows.项目地址: https://gitcode.com/gh_mirrors/arra/arrakis
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
