安全策略
借助安全策略,你可为智能体的常规任务配置安全管控规则,包括是否启用沙箱隔离、拦截高危命令、文件防护等能力。同时支持三种权限模式的切换:手动审批、AI自动审批、完全访问。
内置权限模式
码道CLI内置了手动审批、自动审批和完全访问三种权限模式。
| 模式 | 说明 |
|---|---|
| 手动审批(Manual Approval) | 所有操作在沙箱内执行,高风险操作会被拦截,重要操作需要你审批。 |
| 自动审批(Auto Approval) | 所有操作在沙箱内执行,高风险操作会被拦截,重要操作由AI自动审批。 |
| 完全访问(Full Access) | 直接在你的电脑上运行,不使用沙箱环境。它可以读写任何文件、跳过安全检查,并且不再向你发起审批请求。 |
文件访问控制
选择手动审批、自动审批模式时,码道CLI会自动给智能体设置默认的文件和网络访问权限。
| 操作系统 | 权限类型 | 目录类型 | 目录列表 |
|---|---|---|---|
| Windows | 只读 | - | 除Windows系统关键目录及用户敏感目录外,其余所有目录均开放读权限。 |
| 读写 | 工作空间和额外设置的读写目录 |
| |
| 不可读不可写 | Windows系统关键目录 |
| |
| 用户敏感目录 |
| ||
| macOS | 只读 | - | 除系统敏感目录外,其余所有目录均开放读权限。 |
| 读写 | 工作空间和额外设置的读写目录 |
| |
| 不可读不可写 | 文档/桌面/下载(隐私) |
| |
| 密码/钱包/钥匙链相关 | ~/Library/Keychains | ||
| 系统级敏感配置 |
| ||
| Linux | 只读 | - | 除系统敏感目录外,其余所有目录均开放读权限。 |
| 读写 | 工作空间和额外设置的读写目录 |
| |
| 不可读不可写 | Linux系统关键目录 |
|
设置权限模式
下面以在TUI开发环境中启用自动审批为例。在CLI开发环境中,请直接执行“codearts run "输入的指令" --auto_approval”命令即可。
- 进入TUI开发环境。
- 打开目标项目的根目录。
- 鼠标右键单击空白处,选择“在终端中打开”。
- 在终端中输入“codearts”并回车,即可进入TUI开发环境。
- 选择权限模式。
- 在TUI对话框中,输入“/run-mode”并回车,进入“选择运行模式”页面。
- 单击“Auto Approval”,进入“沙箱配置”页面。 图1 选择Auto Approval
- 配置命令白名单。
根据实际需求将特定命令的前缀添加到白名单。被加入白名单的命令将绕过沙箱机制,直接在沙箱外执行。
- 选择网络访问策略。
表3 网络访问策略说明 参数
说明
全网访问
允许访问所有内部及外部网络资源。
本地网络访问
仅允许访问本地服务网络(局域网/内网),禁止通过TCP协议访问外部互联网。
禁止网络访问
阻断所有通过TCP协议建立的网络连接,禁止访问任何内部或外部资源。
网络自定义访问
通过修改策略配置Json文件,自定义当前项目沙箱环境中进程的文件与网络访问范围。具体操作,请参见5。
- 自定义网络访问策略。
- 在“网络访问策略”中,选择“网络自定义访问”,单击“确认”,进入“自定义策略”页面。
- 在策略配置Json文件中,根据您的需求修改配置。 该文件的初始结构如下所示:
{ "filesystem": { "readWrite": [], "readOnly": [] }, "network": { "default": "Allow", "allow": [], "deny": [] }, "resources": { "cpu": 50, "memory": 8 } }表4 策略配置Json文件参数说明 参数
是否必选
参数类型
描述
filesystem
否
filesystem Object
用于精确控制沙箱对本地文件系统的访问权限。
如果未设置(filesystem字段为空或不存在),则采用沙箱内置的文件系统安全策略。
network
否
network Object
用于控制沙箱内进程的网络访问策略,支持配置允许或阻止对特定网络资源的访问。
如果未设置,默认允许网络访问
resources
否
resources Object
用于定义沙箱运行时的计算资源上限,确保业务稳定并防止资源滥用。
如果未设置,系统将共享宿主机资源。
表5 filesystem字段参数说明 参数
参数类型
默认值
支持路径格式
优先级规则
描述
readWrite
Array
[ ]
- 绝对路径:如/home/user/project、C:\Projects
- 相对路径:如./src、./config
- 环境变量:$HOME(Linux/Mac)、%USERPROFILE%(Windows)
- Home目录简写:~
readOnly > readWrite > 系统默认策略
如果某个路径同时匹配readOnly和readWrite,则以readOnly为准。
可读写路径列表。
readOnly
Array
[ ]
只读路径列表。
表6 network字段参数说明 参数
参数类型
默认值
优先级规则
描述
default
String
Allow
deny > allow > default
如果allow和deny同时配置同一规则时,则以deny为准。
默认的网络访问策略。
- Allow:允许访问
- Deny:禁止访问
说明:该字段支持“域名:端口”和“IP:端口”两种配置格式,其中域名部分支持通配符,IP地址支持CIDR表示法。多个端口可通过逗号分隔进行配置。若未指定具体端口,则默认对所有端口生效。
allow
Array
[ ]
允许访问的网络规则列表。
deny
Array
[ ]
拒绝访问的网络规则列表。
策略配置Json文件配置示例如下:
{ "filesystem": { "readWrite": [ "/home/user/project/output", "~/workspace/temp" ], "readOnly": [ "/etc/systemd", "%USERPROFILE%/.ssh" ] }, "network": { "default": "Allow", "deny": [ "10.0.0.0/8", "192.168.0.0/16" ] }, "resources": { "cpu": 50, "memory": 8 } } - 单击“确认”,退出当前设置界面。
高风险命令执行策略
当智能体检测到高风险命令时,AI将会在对话流中发出提示(TUI开发环境会弹框是否被拦截,CLI开发环境直接被拦截)。请评估风险后,按需选择执行方式。
- Allow once,仅允许本次执行,下次遇到相同命令会再次询问。
- Allow always,本次会话中,此类命令将不再询问,直接执行。
- Reject,不执行此命令,继续对话。适合您认为有风险或不必要的操作。
