跳至主要内容

控制对大型运行器的访问权限

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

谁可以使用此功能?

大型运行器仅适用于使用 GitHub Team 或 GitHub Enterprise Cloud 计划的组织和企业。

注意

本文中的信息和说明仅适用于具有 Linux 和 Windows 操作系统的更大运行器。

关于运行器组

要控制对组织级别运行器的访问权限,使用 GitHub Team 计划的组织可以使用运行器组。运行器组用于收集运行器集并在其周围创建安全边界。

当您授予对运行器组的访问权限时,您可以在组织的运行器设置中看到该运行器组。或者,您可以为运行器组分配其他粒度存储库访问策略。

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

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

管理对运行器的访问权限

注意

在您的工作流可以将作业发送到更大的运行器之前,您必须首先为运行器组配置权限。有关更多信息,请参阅以下部分。

运行器组用于控制哪些存储库可以在您的更大运行器上运行作业。您必须根据您定义更大运行器的位置,从管理层次结构的每个级别管理对该组的访问权限

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

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

Diagram showing a runner group defined at the enterprise level with an organization configuration that allows access for two repositories.

为组织创建运行器组

警告

如果您使用的是固定 IP 范围,我们建议您仅将大型运行器与私有存储库一起使用。您的存储库的分支可以通过创建一个执行工作流中代码的拉取请求,从而在您的大型运行器上运行潜在的危险代码。

注意

创建运行器组时,必须选择一个策略来定义哪些存储库可以访问该运行器组。要更改哪些存储库和工作流可以访问运行器组,组织所有者可以为组织设置策略。有关更多信息,请参阅“在您的企业中实施 GitHub Actions 策略”。

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

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

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

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

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

    Screenshot of the tabs in an organization's profile. The "Settings" tab is outlined in dark orange.

  3. 在左侧边栏中,单击 Actions,然后单击运行器组

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

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

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

    您可以将运行器组配置为可访问特定存储库列表或组织中的所有存储库。默认情况下,只有私有存储库才能访问运行器组中的运行器,但您可以覆盖此设置。如果配置由企业共享的组织的运行器组,则无法覆盖此设置。

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

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

警告

如果您使用的是固定 IP 范围,我们建议您仅将大型运行器与私有存储库一起使用。您的存储库的分支可以通过创建一个执行工作流中代码的拉取请求,从而在您的大型运行器上运行潜在的危险代码。

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

  1. 导航到包含运行器组的组织的主页。

  2. 单击 设置.

  3. 在左侧边栏中,单击 Actions,然后单击运行器组

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

  5. 在“存储库访问”下,使用下拉菜单单击选定的存储库

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

为大型运行器配置私有网络访问

您可以在 Azure VNET 中使用 GitHub 托管的运行器。这使您能够使用 GitHub 托管的基础结构进行 CI/CD,同时让您完全控制运行器的网络策略。有关 Azure VNET 的更多信息,请参阅 Azure 文档中的什么是 Azure 虚拟网络?

如果您已将组织配置为连接到 Azure VNET,则可以为运行器组提供对虚拟网络的访问权限。有关更多信息,请参阅“关于 GitHub 托管的运行器的私有网络”。

更改运行器组的名称

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

将运行器移动到组

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

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

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

    Screenshot of the tabs in an organization's profile. The "Settings" tab is outlined in dark orange.

  3. 在左侧边栏中,单击 Actions,然后单击Runners

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

  5. 选择Runner group下拉菜单。

  6. 在“将运行器移动到组”中,为运行器选择目标组。

删除运行器组

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

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