🔑 Agent Permissions(Agent权限控制)
给Agent发通行证——但不是VIP通行证,是那种只能去几个房间的访客证
📖 定义
"权限就像给Agent一把钥匙——问题是,你给它的是万能钥匙还是只能开一扇门的钥匙?"
Agent Permissions(Agent权限控制)是定义和管理AI Agent可以访问哪些资源、执行哪些操作的安全框架。它遵循最小权限原则(Principle of Least Privilege),确保Agent只拥有完成当前任务所必需的最小权限集合。
🎮 周星驰式比喻:Agent权限就像酒店的房卡系统。普通Agent拿到的房卡只能开自己的房间(读写自己的workspace)。高级Agent能开更多房间(访问特定目录)。而管理员的卡……嗯,能开所有房间,但你得想清楚是不是真的需要给Agent这种权限。毕竟,一个能开所有门的Agent,就像一个拿着万能钥匙的陌生人——你信任它吗?
⚙️ 权限模型
1. 权限层次结构
| 级别 | 权限范围 | 典型用途 | 风险 |
|---|---|---|---|
| 🔵 Read-Only | 只能读取指定目录 | 文档查询、数据分析 | 低 |
| 🟢 Read-Write | 读写指定目录 | 文件编辑、内容生成 | 中低 |
| 🟡 Exec-Limited | 执行受限命令 | 运行脚本、编译代码 | 中 |
| 🟠 Exec-Full | 执行任意命令 | 系统管理、部署 | 高 |
| 🔴 Admin | 完全系统访问 | 紧急运维 | 极高 |
2. OpenClaw 权限配置
# OpenClaw 权限配置
permissions:
filesystem:
read:
- "/var/www/miaoquai/**"
- "/root/.openclaw/**"
write:
- "/var/www/miaoquai/**"
deny:
- "/etc/shadow"
- "/root/.ssh/**"
- "/var/www/miaoquai/.env"
exec:
allowed_commands:
- "git"
- "npm"
- "python3"
- "node"
blocked_commands:
- "rm -rf /"
- "chmod 777"
- "curl | bash"
require_approval:
- "sudo"
- "docker"
- "systemctl"
network:
allowed_domains:
- "api.openai.com"
- "github.com"
blocked_ports:
- 22 # SSH
- 3306 # MySQL
- 6379 # Redis
3. 工具级别的权限控制
# 每个工具的独立权限
tool_permissions:
web_search:
allowed: true
rate_limit: "10/min"
exec:
allowed: true
sandbox: "require"
timeout: 60
browser:
allowed: true
headless: true
proxy: "restricted"
message:
allowed: true
channels:
- "feishu"
rate_limit: "5/min"
🎯 最佳实践
🔒 最小权限
永远只授予完成任务所需的最小权限。宁可后续授权,也不要一开始就给太多。
📋 权限审计
定期审查Agent权限,移除不再需要的权限。记录所有权限使用情况。
⏰ 时效控制
高危权限设置自动过期时间,避免长期持有不必要的权限。
🚨 审批流程
敏感操作(如sudo、删除文件)需要人工审批后才能执行。