Skip to main content

控制对较大运行器的访问

可以使用策略来限制对已添加到组织或企业的 大型运行器 的访问。

谁可以使用此功能?

大型运行器 目前仅对使用 GitHub Team 或 GitHub Enterprise Cloud 计划的组织和企业可用。

注意:**** 本文中的信息和说明仅适用于使用 Linux 和 Windows 操作系统的 大型运行器。

关于运行器组

要在组织级别,使用 GitHub Team 计划的组织可以使用运行器组。运行器组用于收集运行器集,并围绕它们创建安全边界。

授予对运行器组的访问权限时,可以看到组织的运行器设置中列出的运行器组。 或者,你可以为运行器组分配更精细的存储库访问策略。

在创建新运行器时,除非另有指定,否则它们将自动分配给默认组。 运行器每次只能在一个组中。 可以将运行器从一个运行器组移动到另一个运行器组。 有关详细信息,请参阅“将运行器移动到组”。

有关如何将作业路由到特定组中的运行器的信息,请参阅“选择作业的运行器”。

管理对运行器的访问

注意:必须先为运行器组配置权限,然后工作流才能将作业发送到 大型运行器。 有关详细信息,请参阅下列各节。

运行器组用于控制哪些存储库可以在 大型运行器 上运行作业。 必须从管理层次结构的各个级别管理对组的访问,具体取决于定义 大型运行器 的位置:

  • 企业级运行器:默认情况下,组织中的存储库无权访问企业级运行器组。 若要向存储库授予对企业运行器组的访问权限,组织所有者必须配置每个企业运行器组,并选择要授予访问权限的存储库。
  • 组织级运行器:默认情况下,向组织中的所有存储库授予对组织级运行器组的访问权限。 若要限制哪些存储库具有访问权限,组织所有者必须配置组织运行器组并选择哪些存储库具有访问权限。

例如,下图包含一个企业级别的名为 grp-ubuntu-20.04-16core 的运行器组。 在名为 octo-repo 的存储库可以使用该组中的运行器之前,必须先在企业级别配置该组以允许访问 octo-org 组织。 然后必须在组织级别配置该组以允许访问 octo-repo

显示企业级别的运行器组与组织之间以及组织与组织拥有的两个存储库之间的锁的示意图。

为组织创建运行器组

警告:如果使用固定 IP 范围,建议仅对专用存储库使用 大型运行器。 公共存储库的分支可能会通过创建在工作流中执行代码的拉取请求,在 大型运行器 上运行危险代码。

**** 注意:创建运行器组时,你必须选择一个策略,用于定义哪些存储库有权访问运行器组。 若要更改哪些存储库和工作流可以访问运行器组,组织所有者可以为组织设置策略。 有关详细信息,请参阅“在企业中为 GitHub Actions 实施策略”。

所有组织都有单个默认运行器组。 使用 GitHub Team 计划的组织所有者可以创建其他组织级运行器组。

如果在注册过程中未指定任何组,则运行器会自动添加到默认组。 稍后可以将运行器从默认组移动到自定义组。 有关详细信息,请参阅“将运行器移动到组”。

有关如何使用 REST API 创建运行器组的信息,请参阅“GitHub Actions 的 REST API 终结点”。

  1. 在 GitHub.com 上,导航到组织的主页。

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

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

  3. 在左侧边栏中,单击 “操作”,然后单击“运行器组” 。

  4. 在“运行器组”部分,单击“新建运行器组”。

  5. 为运行器组输入名称。

  6. 分配存储库访问策略。

    你可以将运行程序组配置为可供特定存储库列表或组织中的所有存储库访问。 默认情况下,只有专用存储库可以访问运行程序组中的运行程序,但你可以覆盖此设置。 如果配置企业共享的组织的运行组,则不能覆盖此设置。

  7. 单击“创建组”以创建组并应用策略。

更改可以访问运行器组的存储库

警告:如果使用固定 IP 范围,建议仅对专用存储库使用 大型运行器。 公共存储库的分支可能会通过创建在工作流中执行代码的拉取请求,在 大型运行器 上运行危险代码。

对于组织中的运行器组,可以更改组织中哪些存储库可以访问运行器组。

  1. 导航到运行器组所在的组织的主页。

  2. 单击 “设置”。

  3. 在左侧边栏中,单击 “操作”,然后单击“运行器组” 。

  4. 在组列表中,单击要配置的运行器组。

  5. 在“存储库访问”下,使用下拉菜单单击所选组织

    1. 在下拉菜单右侧,单击
    2. 在弹出窗口中,使用复选框选择可以访问此运行器组的存储库。
  6. 单击 “保存组”

为较大的运行器配置专用网络访问

可在 Azure Vnet 中使用 GitHub 托管的运行器。 这样就将 GitHub 托管基础结构用于 CI/CD,同时取得对运行器网络策略的完全控制。 有关 Azure VNET 的详细信息,请参阅 Azure 文档中的什么是 Azure 虚拟网络?

如果已将组织配置为连接到 Azure VNET,则可以向运行器组授予对虚拟网络的访问权限。 有关详细信息,请参阅“关于使用 GitHub 托管的运行器进行专用网络联网”。

更改运行器组的名称

  1. 导航到运行器组所在的组织的主页。
  2. 单击 “设置”。
  3. 在左侧边栏中,单击 “操作”,然后单击“运行器组” 。
  4. 在组列表中,单击要配置的运行器组。
  5. 在“组名称”下的文本字段中输入新的运行器组名称。
  6. 单击“ 保存”。

将运行器移动到组

如果在注册过程中没有指定运行器组,新运行器会自动分配到默认组,然后可以移到另一个组。

  1. 在 GitHub.com 上,导航到组织的主页。

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

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

  3. 在左侧边栏中,单击 “操作”,然后单击“运行器” 。

  4. 在“Runners(运行器)”列表中,单击您要配置的运行器。

  5. 选择“运行器组”下拉列表。

  6. 在“Move runner to group(将运行器移动到组)”中,选择运行器的目的地组。

移除运行器组

若要删除运行器组,必须首先从组中移动或删除所有运行器。

  1. 导航到运行器组所在的组织的主页。
  2. 单击 “设置”。
  3. 在左侧边栏中,单击 “操作”,然后单击“运行器组” 。
  4. 在组列表中,在要删除的组右侧,单击
  5. 若要删除组,请单击“删除组”。
  6. 查看确认提示,然后单击“删除此运行器组”。