Skip to main content

使用组管理自托管运行器的访问权限

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

关于自托管运行器组

自托管运行器组用于控制对组织和企业级自托管运行器的访问。 企业所有者可以配置访问策略来控制企业中哪些组织 和工作流程可以访问运行器组。 组织所有者可以配置访问策略,以控制组织中哪些存储库 和工作流程 可以访问运行器组。

当企业所有者授予组织对运行器组的访问权限时,组织所有者可以看到组织的自托管运行器设置中列出的运行器组。 然后,组织所有者可以为企业运行器组分配更细致的存储库 和工作流程 访问策略。

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

为组织创建自托管的运行器组

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

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

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

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

  2. 在组织名称下,单击 设置.

    组织设置按钮

  3. In the left sidebar, click Actions, then click Runner groups.

  4. 在“Runner groups(运行器组)”部分,单击 New runner group(新运行器组)

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

  6. Assign a policy for repository access.

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

    警告: 建议仅将自托管运行器用于私有仓库。 这是因为,通过创建在工作流程中执行代码的拉取请求,仓库的复刻可能会在您的自托管运行器上运行危险代码。

    更多信息请参阅“关于自托管运行器”。

  7. Assign a policy for workflow access.

    You can configure a runner group to be accessible to a specific list of workflows, or to all workflows. This setting can't be overridden if you are configuring an organization's runner group that was shared by an enterprise. If you specify what workflow can access the runner group, you must use the full path to the workflow, including the repository name and owner, and you must pin the workflow to a branch, tag, or full 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

    Only jobs directly defined within the selected workflows will have access to the runner group. 组织拥有的运行器组无法访问企业中其他组织的工作流程;相反,您必须创建企业拥有的运行器组。

  8. Click Create group to create the group and apply the policy.

为企业创建自托管运行器组

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

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

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

  1. 在 GitHub.com 的右上角,单击您的个人资料照片,然后单击 Your enterprises(您的企业)GitHub Enterprise Cloud 上个人资料照片下拉菜单中的"Your enterprises(您的企业)"

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

  3. 在企业账户侧边栏中,单击 Policies(政策)企业帐户侧边栏中的 Policies(政策)选项卡

  4. 在“ Policies(政策)”下,单击 Actions(操作)

  5. 单击 Runner groups(运行器组)选项卡。

  6. 单击 New runner group(新运行器组)

  7. Under "Group name", type a name for your runner group.

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

    警告

    建议仅将自托管运行器用于私有仓库。 这是因为,通过创建在工作流程中执行代码的拉取请求,仓库的复刻可能会在您的自托管运行器上运行危险代码。

    更多信息请参阅“关于自托管运行器”。

    添加运行器组选项

  9. Assign a policy for workflow access.

    You can configure a runner group to be accessible to a specific list of workflows, or to all workflows. This setting can't be overridden if you are configuring an organization's runner group that was shared by an enterprise. If you specify what workflow can access the runner group, you must use the full path to the workflow, including the repository name and owner, and you must pin the workflow to a branch, tag, or full 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

    Only jobs directly defined within the selected workflows will have access to the runner group.

  10. 单击 Save group(保存组)创建组并应用策略。

更改自托管运行器组的访问策略

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

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

  1. Navigate to where your self-hosted runner groups are located:

    • In an organization: navigate to the main page and click Settings.

    • If using an enterprise-level group:

      1. 在 GitHub.com 的右上角,单击您的个人资料照片,然后单击 Your enterprises(您的企业)GitHub Enterprise Cloud 上个人资料照片下拉菜单中的"Your enterprises(您的企业)"

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

  2. Navigate to the "Runner groups" settings:

    • In an organization:

      1. In the left sidebar, click Actions, then click Runner groups.
    • If using an enterprise-level group:

      1. 在企业账户侧边栏中,单击 Policies(政策)企业帐户侧边栏中的 Policies(政策)选项卡
      2. 在“ Policies(政策)”下,单击 Actions(操作)
      3. 单击 Runner groups(运行器组)选项卡。
  3. In the list of groups, click the runner group you'd like to configure.

  4. 对于企业中的运行器组,在 Organization access(组织访问)下,修改可以访问运行器组的组织。 对于组织中的运行器组,在 Repository access(存储库访问)下,修改可以访问运行器组的存储库。

    警告

    建议仅将自托管运行器用于私有仓库。 这是因为,通过创建在工作流程中执行代码的拉取请求,仓库的复刻可能会在您的自托管运行器上运行危险代码。

    更多信息请参阅“关于自托管运行器”。

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

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

  1. Navigate to where your self-hosted runner groups are located:

    • In an organization: navigate to the main page and click Settings.

    • If using an enterprise-level group:

      1. 在 GitHub.com 的右上角,单击您的个人资料照片,然后单击 Your enterprises(您的企业)GitHub Enterprise Cloud 上个人资料照片下拉菜单中的"Your enterprises(您的企业)"

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

  2. Navigate to the "Runner groups" settings:

    • In an organization:

      1. In the left sidebar, click Actions, then click Runner groups.
    • If using an enterprise-level group:

      1. 在企业账户侧边栏中,单击 Policies(政策)企业帐户侧边栏中的 Policies(政策)选项卡
      2. 在“ Policies(政策)”下,单击 Actions(操作)
      3. 单击 Runner groups(运行器组)选项卡。
  3. In the list of groups, click the runner group you'd like to configure.

  4. Workflow access(工作流程访问)下,选择下拉菜单,然后单击 Selected workflows(选定的工作流程)

  5. 单击

  6. 输入以逗号分隔的可访问运行器组的工作流程列表。 使用完整路径,包括存储库名称和所有者。 将工作流程固定到分支、标记或完整 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

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

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

  7. 单击 Save(保存)

更改运行器组的名称

  1. Navigate to where your self-hosted runner groups are located:

    • In an organization: navigate to the main page and click Settings.

    • If using an enterprise-level group:

      1. 在 GitHub.com 的右上角,单击您的个人资料照片,然后单击 Your enterprises(您的企业)GitHub Enterprise Cloud 上个人资料照片下拉菜单中的"Your enterprises(您的企业)"

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

  2. Navigate to the "Runner groups" settings:

    • In an organization:

      1. In the left sidebar, click Actions, then click Runner groups.
    • If using an enterprise-level group:

      1. 在企业账户侧边栏中,单击 Policies(政策)企业帐户侧边栏中的 Policies(政策)选项卡
      2. 在“ Policies(政策)”下,单击 Actions(操作)
      3. 单击 Runner groups(运行器组)选项卡。
  3. In the list of groups, click the runner group you'd like to configure.

  4. 更改运行器组名称。

自动向组添加自托管运行器

您可以使用配置脚本自动向组添加新的自托管运行器。 例如, 此命令将注册一个新的自托管运行器,并使用 --runnergroup 参数将其添加到名为 rg-runnergroup 的组。

./config.sh --url $org_or_enterprise_url --token $token --runnergroup rg-runnergroup

如果运行器组不存在,命令将失败:

找不到名为 "rg-runnergroup" 的任何自托管运行器组。

将自托管的运行器移动到组

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

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

    • In an organization: navigate to the main page and click Settings.

    • 如果使用企业级运行器

      1. 在 GitHub.com 的右上角,单击您的个人资料照片,然后单击 Your enterprises(您的企业)GitHub Enterprise Cloud 上个人资料照片下拉菜单中的"Your enterprises(您的企业)"

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

  2. 导航到 GitHub Actions 设置:

    • In an organization:

      1. In the left sidebar, click Actions, then click Runners.
    • 如果使用企业级运行器

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

  4. 选择 Runner group(运行器组)下拉列表。

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

删除自托管运行器组

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

  1. Navigate to where your self-hosted runner groups are located:

    • In an organization: navigate to the main page and click Settings.

    • If using an enterprise-level group:

      1. 在 GitHub.com 的右上角,单击您的个人资料照片,然后单击 Your enterprises(您的企业)GitHub Enterprise Cloud 上个人资料照片下拉菜单中的"Your enterprises(您的企业)"

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

  2. Navigate to the "Runner groups" settings:

    • In an organization:

      1. In the left sidebar, click Actions, then click Runner groups.
    • If using an enterprise-level group:

      1. 在企业账户侧边栏中,单击 Policies(政策)企业帐户侧边栏中的 Policies(政策)选项卡
      2. 在“ Policies(政策)”下,单击 Actions(操作)
      3. 单击 Runner groups(运行器组)选项卡。
  3. 在组列表中,在要删除的组右侧,单击

  4. 要删除组,请单击 Remove group(删除组)

  5. 查看确认提示,然后单击 Remove this runner group(删除此运行器组)