ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

gogcli安全画像完全指南:如何编译出命令被锁死的agent-safe二进制

gogcli安全画像完全指南:如何编译出命令被锁死的agent-safe二进制 gogcli安全画像完全指南如何编译出命令被锁死的agent-safe二进制【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcligogcligog是一个运行在终端里的 Google Workspace 命令行工具一个 Go CLI 就能管理 Gmail、Calendar、Drive、Docs、Sheets、Slides、Contacts 和 Admin。当你要把gog交给 AI Agent、CI 任务或沙箱执行时最担心的问题只有一个它会不会顺手把邮件发出去、把文件删掉本文带你走通 gogcli 安全画像Safety Profile的完整流程用一条命令编译出一个发送、删除、共享、管理操作全部被锁死的 agent-safe 二进制并学会验证它真的无法被绕过。为什么需要编译期安全画像 ️gogcli 本来就提供了运行时开关比如--enable-commands、--disable-commands、--gmail-no-send对普通脚本足够用。但安全画像的思路完全不同策略编译进二进制用safety_profile构建标签把命令白名单/黑名单烧录进可执行文件无法被覆盖环境变量、配置文件、命令行参数都无法重新打开被锁死的命令防篡改设计规则以 FNV-64a 哈希表形式写入代码而不是可被sed一行改写的 YAML 字符串。这正是agent-safe名字的含义让 Agent 安心干活危险动作从物理上不存在。一键编译 agent-safe 安全二进制的完整步骤 仓库内置了构建脚本 build-safe.sh流程只有两步第 1 步克隆仓库并执行构建git clone https://gitcode.com/GitHub_Trending/gogcl/gogcli cd gogcli ./build-safe.sh safety-profiles/agent-safe.yaml -o bin/gog-agent-safe第 2 步冒烟测试构建脚本会自动运行--version自检bin/gog-agent-safe version构建脚本内部做了什么拆开看 build-safe.sh 的逻辑校验 YAML 画像文件调用 cmd/bake-safety-profile/ 生成internal/cmd/safety_profile_baked_gen.go哈希化规则表以go build -tags safety_profile编译运行--version冒烟测试退出时删除生成的临时文件。你也可以用 Makefile 目标make build-safe PROFILEsafety-profiles/readonly.yaml OUTPUTbin/gog-readonly效果相同见 Makefile。普通的go build不受影响标准版gog保持原样。agent-safe 画像到底锁死了什么 预设画像 safety-profiles/agent-safe.yaml 共 300 多行覆盖所有服务。核心原则一句话允许读取、草稿、整理等可恢复操作禁止发送、删除、共享、管理操作和认证写入。服务允许true禁止falseGmail搜索、读取、标签整理、归档、创建草稿send、trash、import、草稿sendCalendar查事件、创建/更新/移动事件delete、respondDrive列出、搜索、下载、上传、移动、重命名delete、share、unshareContacts搜索、列出、导出创建、更新、删除Docs / Sheets / Slides读取、导出、查看结构写入、编辑、批量更新、删除Chat列出空间、查看消息发送消息Auth / Config查看状态增删凭据、修改配置Admin / Backup—整组false注意gmail drafts的不对称设计create: true但send: false。Agent 可以替你起草一封完美的回复但发出去这个动作必须留给人类。aliases段还专门把根级快捷命令send锁为false堵住换个入口绕过的路径。仓库还另附两份预设safety-profiles/readonly.yaml只读画像适合报表、审计、监控场景safety-profiles/full.yaml全放行仅用于验证构建链路本身。locked-flags把安全开关焊死 命令规则决定什么能跑locked-flags 决定怎么跑。如果命令行是模型写的你就不能指望它会记得传--sanitize-content。在画像中追加locked-flags: sanitize-content: true wrap-untrusted: true no-input: true锁定的标志位在命令运行前自动生效调用方传了不同值会直接报错而不是覆盖。构建器会在编译期拒绝无法强制执行的锁实现见 cmd/bake-safety-profile/main.go。建议复制一份预设画像再加锁别直接改公共预设。运行时如何拦截先校验、后执行 ⚙️安全边界在执行前。gog先用 Kong 解析命令然后、在任何命令处理器或 Google API 调用发生之前检查烧录画像判定顺序是显式 deny 规则优先allow 规则放行匹配的命令只要画像存在 allow 规则未列出的命令一律拦截。被拦截的命令以退出码 2 失败且不会发出任何 API 请求。哈希规则表由 internal/safetyprofile/hash.go 中的 FNV-64a 算法生成——二进制里不存在连续可打补丁的规则字符串想解锁一条命令得动反汇编级别的功夫。三步验证你的安全二进制真的锁死了 ✅第 1 步验证被锁命令直接失败bin/gog-agent-safe gmail drafts send draft-id # command gmail drafts send is blocked by baked safety profile agent-safe第 2 步验证运行时参数无法绕过bin/gog-agent-safe --enable-commands gmail.send gmail send \ --to aexample.com --subject Test --body Test # 同样失败烧录策略先于运行时白名单检查第 3 步验证允许的命令正常可用bin/gog-agent-safe gmail search newer_than:1d bin/gog-agent-safe auth services此外安全二进制会过滤 help 和gog schema输出——被锁死的命令根本不出现在帮助菜单里Agent 做工具发现时就看不见它们。但记住帮助过滤只是体验层安全边界始终是执行前的画像检查。总结给 Agent 一把只有钥匙孔的钥匙 场景推荐画像收件箱分诊、草稿生成、汇报整理agent-safe报表、审计、只读监控readonly验证构建链路full最后提醒安全画像不替代 OAuth 权限、账号隔离和 Workspace 策略。正确姿势是最小权限 OAuth 作用域 独立账号 烧录画像三层叠加。官方文档 docs/safety-profiles.md 有完整的语法参考、Locked Flags 细节和验证清单值得收藏。【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表