Skip to main content
我们经常发布文档更新,此页面的翻译可能仍在进行中。 有关最新信息,请访问英语文档

控制对较大运行器的访问

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

大型运行器 功能目前对使用 GitHub Team 或 GitHub Enterprise Cloud 计划的组织和企业为 beta 版本,可能会更改。 若要请求访问 beta 版本,请访问注册页

关于运行器组

要在组织和/或企业级别控制对运行器的访问权限,企业管理员可以使用运行器组。企业管理员可以配置访问策略,用于控制企业中的哪些组织和工作流有权访问运行器组。

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

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

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

大型运行器 的默认组

有权访问 大型运行器 的组织和企业将自动收到一个名为“默认较大运行器”的默认运行器组,其中包含 4 个不同大小的运行器。 该组中的运行器已预先配置并可供立即使用。 若要使用该组中的运行器,需要将与所选运行器对应的标签添加到工作流文件。 请参阅下表中的标签。 有关如何使用标签的详细信息,请参阅“使用较大运行器”。

默认运行器

说明Label映像
4 核 Ubuntu 运行器ubuntu-latest-4-coresUbuntu - 最新
8 核 Ubuntu 运行器ubuntu-latest-8-coresUbuntu - 最新
16 核 Ubuntu 运行器ubuntu-latest-16-coresUbuntu - 最新
8 核 Windows 运行器windows-latest-8-coresWindows Server - 最新

默认 大型运行器 组是在计费实体级别创建的。 如果你的组织是企业帐户的一部分,则该组将在企业级别进行管理。 如果你的组织不属于企业,则该组在组织级别进行管理。

在工作流中使用这些运行器之前,不会针对这些运行器向你收费。 使用这些运行器后,将正常计费。 有关计费的详细信息,请参阅“使用较大运行器”。

企业级别 大型运行器 组的默认访问权限设置为自动与企业中的所有组织共享,但并非与所有存储库共享。 组织管理员将需要单独与每个存储库共享默认 大型运行器 组。 对于组织级别的 大型运行器 组,默认访问权限设置为自动与所有存储库共享该组。 有关如何更改访问策略以及去何处查看默认 大型运行器 组的详细信息,请参阅“更改运行器组的访问策略”。

为组织创建运行器组

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

所有组织都有单个默认运行器组。 企业帐户中的组织可以创建其他组。 组织管理员可以允许单个仓库访问运行器组。 有关如何使用 REST API 创建运行器组的信息,请参阅“操作”。

运行器在创建时会自动分配给默认组,并且每次只能成为一个组的成员。 您可以将运行器从默认组移到您创建的任何组。

创建组时,你必须选择一个策略,用于定义哪些存储库和工作流有权访问运行器组。

  1. 在 GitHub.com 上,导航到组织的主页。 1. 在组织名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择 下拉菜单,然后单击“设置” 。

    组织的水平导航栏的屏幕截图。 “设置”选项卡以深橙色标出。 1. 在左侧边栏中,单击“操作”,然后单击“运行器组” 。

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

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

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

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

  5. 分配用于工作流访问的策略。

    可以将运行器组配置为可供特定工作流列表或所有工作流访问。 如果是配置企业共享的组织运行器组,则不能覆盖此设置。 如果指定可以访问运行器组的工作流,则必须使用工作流的完整路径,包括存储库名称和所有者,并且必须将工作流固定到分支、标记或完整 SHA。 例如:octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main

    只有直接在所选工作流程中定义的作业才能访问运行器组。组织拥有的运行器组无法访问企业中其他组织的工作流;相反,你必须创建企业拥有的运行器组。 1. 单击“创建组”以创建组并应用策略。

为企业创建运行器组

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

企业可以将其运行器添加到组以进行访问管理。 企业可以创建运行器组,这些组可供企业帐户中的特定组织或特定工作流访问。 然后,组织所有者可以为企业运行器组分配更精细的存储库和工作流访问策略。 有关如何使用 REST API 创建运行器组的信息,请参阅 GitHub Actions REST API 中的企业终结点。

运行器在创建时会自动分配给默认组,并且每次只能成为一个组的成员。 您可以在注册过程中将运行器分配给特定组,也可以稍后将运行器从默认组移到自定义组。

创建组时,必须选择用于定义哪些组织有权访问运行器组的策略。

  1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

  2. 在企业列表中,单击您想要查看的企业。

  3. 在企业帐户边栏中,单击“ 策略”。 1. 在“ 策略”下,单击“操作”。 1. 单击“运行器组”选项卡。

  4. 单击“新建运行器组”。

  5. 在“组名称”下,键入运行器组的名称。

  6. 要选择组织访问策略,请选择“组织访问”下拉列表,然后单击一个策略。 可将运行器组配置为可供特定组织列表或企业中的所有组织访问。

  7. 分配用于工作流访问的策略。

    可以将运行器组配置为可供特定工作流列表或所有工作流访问。 如果是配置企业共享的组织运行器组,则不能覆盖此设置。 如果指定可以访问运行器组的工作流,则必须使用工作流的完整路径,包括存储库名称和所有者,并且必须将工作流固定到分支、标记或完整 SHA。 例如:octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main

    只有直接在所选工作流程中定义的作业才能访问运行器组。

  8. 单击“保存组”以创建组并应用策略。

对运行器组使用唯一名称

GitHub Actions 要求运行器组名称在组织级别必须唯一。 这意味着组织将无法再创建与企业中的运行器组同名的运行器组。 此外,用户将在与企业中的组共享相同名称的任何运行器组上看到警告横幅,建议重命名组织组。

为了避免混淆,如果组织和企业中存在重复的运行器组,工作流将失败。 若要解决此问题,可以重命名组织或企业中的某个运行器组,也可以更新工作流文件以向运行器组名称添加前缀:

  • org/organization/
  • ent/enterprise/

示例:使用前缀区分运行器组

例如,如果组织中有一个名为 my-group 的运行器组,企业中有另一个名为 my-group 的运行器组,则可以更新工作流文件以使用 org/my-groupent/my-group 来区分这两者。

使用 org/

runs-on:
  group: org/my-group
  labels: [ self-hosted, label-1 ]

使用 ent/

runs-on:
  group: ent/my-group
  labels: [ self-hosted, label-1 ]

更改运行器组的访问策略

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

对于企业中的运行器组,你可以更改企业中可以访问运行器组的组织或限制运行器组可以运行的工作流。 对于组织中的运行器组,你可以更改组织中可访问运行器组的存储库或限制运行器组可运行的工作流。

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

  1. 导航到运行器组所在的位置:

    • 在组织中:

      1. 导航到主页并单击 “设置”。
    • 如果使用的是企业级组:

      1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

      2. 在企业列表中,单击您想要查看的企业。

  2. 导航到“运行器组”设置:

    • 在组织中:

      1. 在左侧边栏中,单击“操作”,然后单击“运行器组” 。
    • 如果使用的是企业级组:

      1. 在企业帐户边栏中,单击“ 策略”。 1. 在“ 策略”下,单击“操作”。 1. 单击“运行器组”选项卡。 1. 在组列表中,单击要配置的运行器组。
  3. 对于组织中的运行器组,在“存储库访问”下,使用下拉菜单单击“所选组织”。

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

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

    警告

     建议仅将自托管运行器用于私有仓库。 这是因为,通过创建在工作流中执行代码的拉取请求,公共存储库的分支可能会在自托管运行器计算机上运行危险代码。
    

    有关详细信息,请参阅“关于自托管运行程序”。

更改可以访问运行器组的工作流程

可以将运行器组配置为运行选定工作流或所有工作流。 例如,可以使用此设置来保护存储在运行器上的机密,或者通过将运行器组限制为仅运行特定的可重用工作流来标准化部署工作流。 如果配置企业共享的组织的运行组,则不能覆盖此设置。

  1. 导航到运行器组所在的位置:

    • 在组织中:

      1. 导航到主页并单击 “设置”。
    • 如果使用的是企业级组:

      1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

      2. 在企业列表中,单击您想要查看的企业。

  2. 导航到“运行器组”设置:

    • 在组织中:

      1. 在左侧边栏中,单击“操作”,然后单击“运行器组” 。
    • 如果使用的是企业级组:

      1. 在企业帐户边栏中,单击“ 策略”。 1. 在“ 策略”下,单击“操作”。 1. 单击“运行器组”选项卡。 1. 在组列表中,单击要配置的运行器组。
  3. 在“工作流访问”下,选择下拉菜单,然后单击“选定的工作流” 。

  4. 单击

  5. 输入以逗号分隔的可访问运行器组的工作流程列表。 使用完整路径,包括存储库名称和所有者。 将工作流程固定到分支、标记或完整 SHA。 例如:octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main

    只有直接在所选工作流程中定义的作业才能访问运行器组。

    组织拥有的运行器组无法访问企业中其他组织的工作流程。相反,您必须创建企业拥有的运行器组。

  6. 单击“ 保存”。

更改运行器组的名称

  1. 导航到运行器组所在的位置:

    • 在组织中:

      1. 导航到主页并单击 “设置”。
    • 如果使用的是企业级组:

      1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

      2. 在企业列表中,单击您想要查看的企业。

  2. 导航到“运行器组”设置:

    • 在组织中:

      1. 在左侧边栏中,单击“操作”,然后单击“运行器组” 。
    • 如果使用的是企业级组:

      1. 在企业帐户边栏中,单击“ 策略”。 1. 在“ 策略”下,单击“操作”。 1. 单击“运行器组”选项卡。 1. 在组列表中,单击要配置的运行器组。
  3. 更改运行器组名称。

  4. 在“设置”页的“运行器”部分,单击要配置的运行器组旁边的 ,然后单击“编辑名称和 [组织|存储库] 访问权限”。

  5. 更改运行器组名称。

将运行器移动到组

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

  1. 导航到运行器注册的位置:

    • 在组织中:导航到主页并单击“ 设置” 。

    • 如果使用的是企业级运行器:

      1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

      2. 在企业列表中,单击您想要查看的企业。

  2. 导航到 GitHub Actions 设置:

    • 在组织中:

      1. 在左侧边栏中,单击“操作”,然后单击“运行器”。
    • 如果使用的是企业级运行器:

      1. 在企业帐户边栏中,单击“ 策略”。 1. 在“ 策略”下,单击“操作”。 1. 单击“运行器”选项卡。
  3. 在“Runners(运行器)”列表中,单击您要配置的运行器。

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

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

移除运行器组

运行器在其组被移除时将自动返回到默认组。

  1. 导航到运行器组所在的位置:

    • 在组织中:

      1. 导航到主页并单击 “设置”。
    • 如果使用的是企业级组:

      1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

      2. 在企业列表中,单击您想要查看的企业。

  2. 导航到“运行器组”设置:

    • 在组织中:

      1. 在左侧边栏中,单击“操作”,然后单击“运行器组” 。
    • 如果使用的是企业级组:

      1. 在企业帐户边栏中,单击“ 策略”。 1. 在“ 策略”下,单击“操作”。 1. 单击“运行器组”选项卡。
  3. 在组列表中,在要删除的组右侧,单击

  4. 若要删除组,请单击“删除组”。

  5. 查看确认提示,然后单击“删除此运行器组”。 此组中的任何运行器都会自动移动到默认组,在该组中它们会继承分配给该组的访问权限。