更新时间:2026-10-27 GMT+08:00
分享

安全策略

借助安全策略,你可为智能体的常规任务配置安全管控规则,包括是否启用沙箱隔离、拦截高危命令、文件防护等能力。同时支持三种权限模式的切换:手动审批、AI自动审批、完全访问。

内置权限模式

码道Agent Space内置了手动审批、自动审批和完全访问三种权限模式。

表1 权限模式

模式

说明

手动审批

所有操作在沙箱内执行,高风险操作会被拦截,重要操作需要你审批。

自动审批

所有操作在沙箱内执行,高风险操作会被拦截,重要操作由AI自动审批。

完全访问

直接在你的电脑上运行,不使用沙箱环境。它可以读写任何文件、跳过安全检查,并且不再向你发起审批请求。

文件访问控制

选择手动审批、自动审批模式时,码道Agent Space会自动给智能体设置默认的文件和网络访问权限。

表2 文件访问控制

操作系统

权限类型

目录类型

目录列表

Windows

只读

-

除Windows系统关键目录及用户敏感目录外,其余所有目录均开放读权限。

读写

工作空间和额外设置的读写目录

  • 临时目录:C:\Windows\Temp
  • 缓存目录:%APPDATA%,%LOCALAPPDATA%,%TMP%,%TEMP%
  • 常用语言的工具链及其依赖目录
    • %USERPROFILE%\go
    • %USERPROFILE%\.m2\repository(Maven缓存)
    • %USERPROFILE%\.gradle(Gradle缓存)
    • %USERPROFILE%\AppData\Local\Programs\Python(全局第三方包)
    • %USERPROFILE%\AppData\Roaming\Python\(用户级包)
    • %USERPROFILE%\AppData\Roaming\npm\(全局npm包)
    • %USERPROFILE%\AppData\Local\npm-cache\(npm缓存)
    • %USERPROFILE%\.cargo\(crate索引和缓存)
    • %USERPROFILE%\.gem\(Gem缓存)

不可读不可写

Windows系统关键目录

  • C:\Windows\System32\config
  • C:\Windows\System32\drivers\etc
  • C:\Windows\SysWOW64\config
  • C:\ProgramData\Microsoft\Crypto
  • C:\Windows\System32\GroupPolicy
  • C:\Windows\System32\GroupPolicyUsers
  • C:\ProgramData\Microsoft\Windows\WER

用户敏感目录

  • C:\Users\*\AppData\Local\Microsoft\Credentials
  • C:\Users\*\AppData\Roaming\Microsoft\Credentials
  • C:\Users\*\AppData\Local\Microsoft\Protect
  • C:\Users\*\NTUSER.DAT
  • C:\Users\*\ntuser.dat.LOG

macOS

只读

-

除系统敏感目录外,其余所有目录均开放读权限。

读写

工作空间和额外设置的读写目录

  • 临时目录:/tmp、/var/folders、TMPDIR环境变量路径
  • 缓存目录:~/Library/Caches、~/.cache
  • 通用工具依赖目录:~/.local/lib、~/.local/bin、~/.local/share
  • 常用开发语言的工具链及其依赖目录
    • $HOME/go/(编译缓存/二进制目录)
    • $HOME/.m2/repository/(Maven本地仓库)
    • $HOME/.gradle/(Gradle缓存)
    • $HOME/.local/lib/pythonX.X/site-packages/(用户级包)
    • $HOME/Library/Caches/pip/(pip缓存)
    • $HOME/.npm/(用户级npm包)
    • $HOME/Library/Caches/npm(npm缓存)
    • $HOME/.cargo/(crate索引和缓存)
    • $HOME/.gem/ruby/(用户级gem)

不可读不可写

文档/桌面/下载(隐私)

  • ~/Desktop
  • ~/Documents
  • ~/Downloads
  • ~/Pictures
  • ~/Movies
  • ~/.ssh
  • ~/.zsh_history

密码/钱包/钥匙链相关

~/Library/Keychains

系统级敏感配置

  • /etc/passwd
  • /private/etc/passwd
  • /etc/group
  • /private/etc/group
  • /etc/hosts
  • /private/etc/hosts
  • /etc/resolv.conf
  • /private/etc/resolv.conf
  • /etc/pam.d
  • /private/etc/pam.d

Linux

只读

-

除系统敏感目录外,其余所有目录均开放读权限。

读写

工作空间和额外设置的读写目录

  • 临时目录:/tmp、TMPDIR环境变量路径
  • 缓存目录:~/.cache、XDG_CACHE_HOME环境变量路径
  • 通用工具依赖目录:~/.local/lib、~/.local/bin、~/.local/share
  • 常用开发语言的工具链及其依赖目录
    • $HOME/go/(编译缓存/二进制目录)
    • $HOME/.m2/repository/(Maven本地仓库)
    • $HOME/.gradle/(Gradle缓存)
    • $HOME/.local/lib/pythonX.X/site-packages/(用户级包)
    • $HOME/.npm/(用户级npm包)
    • $HOME/Library/Caches/npm(npm缓存)
    • $HOME/.cargo/(crate索引和缓存)
    • $HOME/.gem/ruby/(用户级gem)

不可读不可写

Linux系统关键目录

  • /etc/shadow
  • /etc/passwd
  • /etc/group
  • /etc/gshadow
  • /etc/sudoers

设置权限模式

  1. 参考码道Agent Space用户界面操作,进入码道Agent Space。
  2. 单击码道Agent Space页面右上方的设置图标 ,进入码道Agent Space设置页面。
  3. 选择权限模式。

    1. 在设置页面的左侧导航栏中,选择“安全策略”。
    2. 在“权限模式”列表中,选择你需要的权限模式。
      图1 选择权限模式

  4. 自定义沙箱配置。

    通过配置“sandbox.json”文件,您可以自定义当前项目沙箱环境中进程的文件与网络访问范围。

    1. 单击“沙箱自定义配置”后的“打开配置”,在您的本地用户目录下(%USERPROFILE%/.codeartsdoer)会生成一个sandbox.json文件,并自动在编辑器中打开。
      该文件的初始结构如下所示:
      {
          "filesystem": {
              "readWrite": [],
              "readOnly": []
          },
          "network": {
              "default": "Allow",
              "allow": [],
              "deny": []
          },
          "resources": {
              "cpu": 50,
              "memory": 8
          }
      }
      表3 sandbox.json文件参数说明

      参数

      是否必选

      参数类型

      描述

      filesystem

      否

      filesystem Object

      用于精确控制沙箱对本地文件系统的访问权限。

      如果未设置(filesystem字段为空或不存在),则采用沙箱内置的文件系统安全策略。

      network

      否

      network Object

      用于控制沙箱内进程的网络访问策略,支持配置允许或阻止对特定网络资源的访问。

      如果未设置,默认允许网络访问。

      resources

      否

      resources Object

      用于定义沙箱运行时的计算资源上限,确保业务稳定并防止资源滥用。

      如果未设置,系统将共享宿主机资源。

      表4 filesystem参数说明

      参数

      参数类型

      默认值

      支持路径格式

      优先级规则

      描述

      readWrite

      Array

      [ ]

      • 绝对路径:如/home/user/project、C:\Projects
      • 相对路径:如./src、./config
      • 环境变量:$HOME(Linux/Mac)、%USERPROFILE%(Windows)
      • Home目录简写:~

      readOnly > readWrite > 系统默认策略

      如果某个路径同时匹配readOnly和readWrite,则以readOnly为准。

      可读写路径列表。

      readOnly

      Array

      [ ]

      只读路径列表。

      表5 network参数说明

      参数

      参数类型

      默认值

      优先级规则

      描述

      default

      String

      Allow

      deny > allow > default

      如果allow和deny同时配置同一规则时,则以deny为准。

      默认的网络访问策略。

      • Allow:允许访问
      • Deny:禁止访问
      说明:

      该字段支持“域名:端口”和“IP:端口”两种配置格式,其中域名部分支持通配符,IP地址支持CIDR表示法。多个端口可通过逗号分隔进行配置。若未指定具体端口,则默认对所有端口生效。

      allow

      Array

      [ ]

      配置允许访问沙箱内进程的网络规则列表。

      deny

      Array

      [ ]

      配置拒绝访问沙箱内进程的网络规则列表。

      表6 resources参数说明

      参数

      参数类型

      默认值

      最小值

      描述

      cpu

      Integer

      50

      20

      CPU占比,单位为%。

      memory

      Integer

      8

      1

      内存大小,单位为GB。

    1. 在打开的“sandbox.json”文件中,填入您的自定义沙箱配置。

      “sandbox.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": 4
          }
      }
    1. 保存文件以使配置生效。

  5. 配置命令白名单。

    根据实际需求将特定命令的前缀添加到白名单。被加入白名单的命令将绕过沙箱机制,直接在沙箱外执行。

  6. 配置网络访问策略。

    表7 网络访问策略说明

    参数

    说明

    全网访问

    允许访问所有内部及外部网络资源。

    本地访问

    仅允许访问本地服务网络(局域网/内网),禁止通过TCP协议访问外部互联网。

    禁止网络访问

    阻断所有通过TCP协议建立的网络连接,禁止访问任何内部或外部资源。

    自定义网络访问

    通过修改策略配置JSON文件,自定义当前项目沙箱环境中进程的文件与网络访问范围。如何配置JSON文件,请参见4。

  7. 配置保护范围。

    表8 设置文件保护范围

    参数

    说明

    点文件保护 (Dotfiles)

    开启后,禁止智能体修改以点开头的配置文件,如.env、.gitignore等。

    编辑范围保护

    开启后,仅允许智能体在当前项目目录范围内增加、修改和删除文件,不允许编辑其他目录中的文件。

    读取范围保护

    开启后,仅允许智能体访问和读取当前项目目录中的文件,不允许访问其他目录中的文件。

高风险命令执行策略

当智能体检测到高风险命令时,AI将会在对话流中发出提示。请评估风险后,按需选择执行方式。

  • 跳过:跳过该命令,不执行。
  • 添加XXX到白名单:将该命令的前缀添加到白名单。此后,所有以该前缀开头的命令将直接在沙箱环境外执行。
  • 继续运行:允许在当前会话的沙箱环境外继续执行此命令。

相关文档