Appearance
Copilot Cloud Agent 默认启用防火墙,限制 AI 只能访问特定的包仓库和依赖源,防止数据泄露。组织管理员可以配置自定义域名白名单,仓库管理员可以在组织允许的范围内添加额外规则。禁用防火墙会显著增加安全风险。
GitHub Copilot Cloud Agent 防火墙配置:控制 AI 的网络访问权限
防火墙的作用
Copilot Cloud Agent 在 GitHub Actions 环境中执行任务时,默认通过内置防火墙限制网络访问,主要目的是防止代码或敏感信息被意外泄露到外部主机。
被拦截的请求会在 PR 中生成警告。
默认允许访问的内容
内置推荐白名单(默认启用)包括:
- 系统包仓库(apt、yum 等)
- 容器镜像仓库(Docker Hub、GCR 等)
- 语言包仓库(npm、PyPI、Maven、crates.io 等)
- SSL 证书颁发机构
- Playwright MCP 所需的浏览器下载源
防火墙的限制
- 只对 Agent 启动的 Bash 进程生效,不控制 MCP 服务器或 setup steps 中的进程
- 仅在 GitHub Actions 运行环境中有效
- 存在被高级攻击绕过的可能性
组织级防火墙配置
组织所有者在以下路径配置:
Organization Settings → Copilot → Cloud agent
| 配置项 | 选项 |
|---|---|
| 启用防火墙 | Enabled / Disabled / Let repositories decide |
| 推荐白名单 | Enabled / Disabled / Let repositories decide |
| 允许仓库自定义规则 | 开启/关闭(控制仓库管理员是否能添加规则) |
| 组织级自定义白名单 | 添加域名或 URL |
仓库级防火墙配置
仓库管理员在以下路径配置:
Repository Settings → Copilot → Cloud agent
注意:只有当组织将"启用防火墙"设置为 "Let repositories decide" 时,仓库级别才能修改防火墙开关。否则只能管理自定义白名单(在组织允许的前提下)。
组织级和仓库级的自定义规则合并生效。
添加自定义白名单规则
如果 Agent 需要访问特定的内部 API 或私有包仓库:
- 进入对应的 Cloud agent 设置页面(组织级或仓库级)
- 找到自定义白名单区域
- 添加需要允许的域名或 URL
示例:
api.internal.example.com(内部 API)registry.example.com(私有 Docker 镜像仓库)
禁用防火墙的风险
安全警告:禁用防火墙将允许 Copilot 连接任意主机,显著增加代码或敏感信息被泄露的风险。
只在以下情况考虑禁用:
- 测试环境,无敏感数据
- 配合自托管 Runner 使用独立的网络隔离方案
常见问题
Q: MCP 服务器的网络访问受防火墙控制吗?
A: 不受控制。防火墙只管理 Agent 启动的 Bash 进程,MCP 服务器进程绕过防火墙规则。如果 MCP 服务器需要访问外部网络,无需配置白名单。
Q: 仓库的 setup steps 里的网络请求需要加白名单吗?
A: 不需要。setup steps 也不受防火墙控制,可以自由访问网络。
Q: PR 里出现防火墙警告,说明 Agent 被阻止了什么?
A: 说明 Agent 尝试访问了不在白名单中的域名。查看警告信息中的域名,评估是否安全,然后决定是否添加到白名单。