Skip to main content

自定义或禁用 GitHub Copilot 云代理的防火墙

了解如何控制可以访问的 Copilot云代理 域和 URL。

注意

防火墙配置已移动到 Copilot云代理 “设置”页。 先前保存为 Actions 变量的配置将保留在该页上。

概述

默认情况下, Copilot对 Internet 的访问受防火墙限制。

限制 Internet 访问有助于管理数据外泄风险。 来自 Copilot或恶意指令的意外行为可能导致代码或其他敏感信息泄露到远程位置。

防火墙始终允许访问若干主机,这些主机用于Copilot与GitHub进行交互。 默认情况下,还会启用建议的允许列表,以允许代理下载依赖项。

如果 Copilot 尝试发出防火墙阻止的请求,则会将警告添加到拉取请求正文(对于新拉取请求)或注释(对于现有拉取请求)。 警告会显示受阻止的地址和试图发出请求的命令。

该屏幕截图显示了来自 Copilot 的关于受防火墙阻止的警告。

局限性

代理防火墙具有重要局限性,会影响其安全覆盖范围。

  • 仅适用于代理启动的进程:防火墙仅适用于代理通过其 Bash 工具启动的进程。 它不适用于在配置的 Copilot 安装步骤中启动的模型上下文协议(MCP)服务器或进程。

          GitHub Actions仅适用于设备**:防火墙仅在设备环境中运行GitHub Actions。 它不适用于在此环境之外运行的进程。
  • 绕过潜在风险:复杂的攻击可能会绕过防火墙,从而可能允许未经授权的网络访问和数据外泄。

这些限制意味着防火墙为常见方案提供保护,但不应被视为全面的安全解决方案。

默认情况下启用的建议白名单允许访问:

  • 常见的操作系统包存储库(例如 Debian、Ubuntu、Red Hat)。
  • 常见容器注册表(例如,Docker Hub、Azure Container Registry、AWS 弹性容器注册表)。
  • 打包常用编程语言使用的注册表(C#、Dart、Go、Haskell、Java、JavaScript、Perl、PHP、Python、Ruby、Rust、Swift)。
  • 常见证书颁发机构(用于允许验证 SSL 证书)。
  • 用于下载适用于 Playwright MCP 服务器的 Web 浏览器的主机。

有关建议允许列表中包含的主机的完整列表,请参阅 Copilot 允许列表参考

在组织级别配置防火墙

组织所有者可以在组织级别配置所有防火墙设置。 若要访问防火墙设置,请执行以下操作:

  1. 在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。

  2. 单击以选择一个组织。

  3. 在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

    组织配置文件中选项卡的屏幕截图。 “设置”选项卡以深橙色标出。

  4. 在边栏中的“代码、规划和自动化”下,单击 Copilot,然后单击 云代理

启用或禁用防火墙

警告

禁用防火墙将允许 Copilot 连接到任何主机,增加代码或其他敏感信息外泄的风险。

  1. 在“Internet 访问”下,将 “启用防火墙 ”设置设置为 “已启用”、“ 禁用”“让存储库决定 ”(默认值)。
  1. 在“Internet 访问”下,将 “建议的允许列表 ”设置设置为 “已启用”、“ 禁用”“让存储库决定 ”(默认值)。

控制存储库是否可以添加自定义允许列表规则

默认情况下,存储库管理员可以将自己的条目添加到防火墙允许列表。 组织所有者可以禁用此功能,以防止存储库添加自定义规则。

  1. 在“Internet 访问”下,将 “允许存储库自定义规则 ”设置设置为 “已启用 ”(默认值)或 “已禁用”。

管理组织自定义允许列表

添加到组织自定义允许列表的项目适用于组织中的所有存储库。 无法在存储库级别删除这些项目。 组织级别和存储库级规则组合在一起。

  1. 在“Internet 访问”下,单击 “组织自定义允许列表”。

  2. 添加希望包含在允许列表中的地址。 可以包括:

    • (例如 packages.contoso.corp)。 将允许流量流向指定的域和任何子域。

           **Example**:`packages.contoso.corp`允许流量流向 `packages.contoso.corp` 和 `prod.packages.contoso.corp`,但不允许`artifacts.contoso.corp`。
      
    • URLs(例如,https://packages.contoso.corp/project-1/)。 将仅允许在指定的方案 (https) 和主机 (packages.contoso.corp) 上传输流量,并且仅限于指定的路径和后代路径。

           **Example**:`https://packages.contoso.corp/project-1/`允许流量流向`https://packages.contoso.corp/project-1/`和`https://packages.contoso.corp/project-1/tags/latest`,但不允许`https://packages.contoso.corp/project-2`、`ftp://packages.contoso.corp`或`https://artifacts.contoso.corp`。
      
  3. 单击 “添加规则”

  4. 验证列表后,单击“Save changes”****。

在存储库级别配置防火墙

存储库管理员可以在存储库级别配置防火墙设置,包括启用或禁用防火墙、启用或禁用建议的允许列表,以及管理自定义允许列表。 根据组织级别的配置,可能会锁定其中一些设置。

若要访问防火墙设置,请执行以下操作:

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在边栏的“代码和自动化”部分中,单击 Copilot 然后 云代理

启用或禁用防火墙

注意

如果组织级别 “启用防火墙 ”设置设置为 “让存储库决定”,则只能在存储库级别更改此设置。 如果组织级别设置 为“已启用 ”或 “禁用”,则无法更改各个存储库的此设置。

  1. 打开或关闭 “启用防火墙 ”设置。

注意

如果组织级别的 推荐允许列表 设置设置为 “让存储库决定”,则只能在存储库级别更改此设置。 如果组织级别设置 为“已启用 ”或 “禁用”,则无法更改各个存储库的此设置。

  1. 打开或关闭 “建议允许列表 ”设置。

管理自定义允许列表

注意

如果组织级别 允许存储库自定义规则 设置为 “已启用”,则只能在存储库级别添加自定义允许列表规则。 有关详细信息,请参阅 控制存储库是否可以添加自定义允许列表规则

  1. 单击 “自定义允许列表”。

  2. 添加希望包含在允许列表中的地址。 可以包括:

    • (例如 packages.contoso.corp)。 将允许流量流向指定的域和任何子域。

           **Example**:`packages.contoso.corp`允许流量流向 `packages.contoso.corp` 和 `prod.packages.contoso.corp`,但不允许`artifacts.contoso.corp`。
      
    • URLs(例如,https://packages.contoso.corp/project-1/)。 将仅允许在指定的方案 (https) 和主机 (packages.contoso.corp) 上传输流量,并且仅限于指定的路径和后代路径。

           **Example**:`https://packages.contoso.corp/project-1/`允许流量流向`https://packages.contoso.corp/project-1/`和`https://packages.contoso.corp/project-1/tags/latest`,但不允许`https://packages.contoso.corp/project-2`、`ftp://packages.contoso.corp`或`https://artifacts.contoso.corp`。
      
  3. 单击 “添加规则”

  4. 验证列表后,单击“Save changes”****。

延伸阅读