Skip to content

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 或私有包仓库:

  1. 进入对应的 Cloud agent 设置页面(组织级或仓库级)
  2. 找到自定义白名单区域
  3. 添加需要允许的域名或 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 尝试访问了不在白名单中的域名。查看警告信息中的域名,评估是否安全,然后决定是否添加到白名单。