UnYOLO:您的 GitHub 账户的代理凭证经纪人和策略引擎
使用 unYOLO 安全 YOLO unYOLO 是一个框架,用于为 GitHub、Hugging Face 或 Google Workspace 等服务构建凭证经纪人和代理。您的代理与经纪人对话,从不持有真实凭证。unYOLO 让您可以在本地文件中保持细粒度的策略。没有权限屏幕需要点击,也无需为代理创建单独的账户。当代理需要更多权限时,您可以授予它会自动过期的定时权限。开始使用 查看源代码 您 代理 agent-a@workstation $ gh-broker operation submit pull_request.create op_9c2f succeeded pull request #482 opened $ gh-broker operation submit pull_request.merge op_1d55 pending policy requires operator approval op_1d55 approved by operator, single use op_1d55 succeeded pull request #482 merged ‹ u unYOLO bot unYOLO 批准需要 agent-a 想要在 acme/api 中合并 #482。合并不在此代理的政策中。 09:41 安装 unYOLO 在 macOS 或 Linux 上运行引导安装程序。 curl -fsSL https://unyolo.io/install.sh | sh 安装选项 凭证边界 代理工具通常会接收与人相同的账户范围内的令牌。错误的命令可能会接触到该令牌所覆盖的每个代码库和操作。经纪人将提供者令牌保存在另一个进程中。代理接收具有策略授权的客户凭证,因此未经授权的强制推送在 GitHub 看到之前失败。 没有经纪人 您将令牌交给代理。它完成您想要的工作,相同的令牌也接触到您账户中的其他内容。您将 GitHub 令牌交给代理。它推送您想要的分支,相同的令牌也接触到默认分支、acme/api 仓库以及一个单独的私有仓库。 token 您 代理 agent-a/parser-fix branch main 默认分支 acme/api 仓库 acme/secrets 私有库 使用 unYOLO 经纪人持有令牌。代理请求相同的工作,而您从未授权的调用被拒绝。您将 GitHub 令牌交给经纪人。代理向经纪人发送请求,经纪人将其与您的 scope.json 进行检查,允许推送相同的分支并返回其结果,拒绝其他三个。 token 请求 结果 scope.json 您 代理 经纪人 agent-a/parser-fix branch main 默认分支 acme/api 仓库 acme/secrets 私有库 请求路径 每个经纪人使用相同的请求路径。只有分类和执行取决于提供者。 1. 客户端身份验证 调用者在经纪人接受请求前呈现一个命名的经纪人客户端秘密。 2. 请求分类 提供者适配器共同识别客户端、操作及其目标属性。 3. 策略评估 共享引擎将该元组与规则文件进行匹配。 4. 活动授权 已批准的授权作为到期和使用预算的允许规则。 5. 批准请求 可请求的操作等待在操作员收件箱中,也可能出现在 Telegram 中。 6. 提供者执行 经纪人使用提供者凭证执行操作并仅返回结果。 7. 审计条目 经纪人记录决定和匹配规则 ID,但不包括秘密。 决定顺序,无论规则在文件中的顺序如何都是固定的 deny active grant allow request no_match 拒绝胜过一切,包括已批准的授权,而与任何规则都不匹配的请求将被拒绝。 阅读策略引擎文档 政策文件 经纪人在启动时加载一个 JSON 规则文件作为授权源。您可以直接阅读并在拉取请求中查看更改。unYOLO 不从流量中推断权限。属性提供了有用的缩小。此文本旁边的规则允许推送至 refs/heads/agent-a/**。它未覆盖 refs/heads/main,因此向默认分支的推送被拒绝。未知字段、重复规则 ID、不支持的操作和无效的通配符会阻止服务启动。 完整的策略架构 操作员批准 标记一个操作请求会创建一个持久的批准记录并保持原始调用打开。一旦批准,git push 将作为同一推送恢复。拒绝、过期或上游状态的变化将返回普通的 Git 失败,并且不转发任何内容。操作员通过具有其自身凭证的单独监听器上的受保护收件箱做出决定。Telegram 可以显示相同的批准记录。任何接口只会关闭请求一次,批准只可缩短其持续时间或使用计数。 批准的工作原理 包含的经纪人 该仓库包含 GitHub 和 Hugging Face 经纪人。sudo-broker 处理批准的 Unix 命令。每个经纪人作为单独的进程运行,无法接触到其他提供者的凭证。 自定义经纪人 包含的经纪人使用相同的框架,可以提供自定义提供者。为了保护内部 API 密钥或云角色,实施针对特定提供者的分类器和执行器。共享包提供政策和批准机制。架构检查会拒绝导入提供者的共享代码。 您写的分类器识别客户端
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡