Skip to main content

Managing access to self-hosted runners using groups

You can use policies to limit access to self-hosted runners that have been added to an organization or enterprise.

Observação: no momento, não há suporte para os executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.

About runner groups

Grupos de executores são usados para controlar o acesso a executores no nível da organização e da empresa. Os proprietários da empresa podem configurar as políticas de acesso que controlam quais organizações e fluxos de trabalho de uma empresa têm acesso ao grupo de executores. Os proprietários da organização podem configurar as políticas de acesso que controlam quais repositórios e fluxos de trabalho em uma organização têm acesso ao grupo de executores.

Quando um proprietário de empresa concede acesso a um grupo de executores, os proprietários da organização podem ver o grupo de executores listado nas configurações do executor da organização. Os proprietários da organização podem atribuir um repositório granular adicional e as políticas de acesso do fluxo de trabalho ao grupo do executor corporativo.

Quando novos executores são criados, eles são atribuídos automaticamente ao grupo-padrão. Os executores só podem estar em um grupo por vez. Você pode mover os executores do grupo-padrão para outro grupo. Para obter mais informações, confira "Como mover um executor para um grupo".

Creating a self-hosted runner group for an organization

Aviso: Recomendamos que você use apenas executores auto-hospedados com repositórios privados. Isso acontece porque as bifurcações do seu repositório público podem executar código perigoso em seu computador de executor auto-hospedado criando uma solicitação de pull que executa o código em um fluxo de trabalho.

Para obter mais informações, confira "Sobre os executores auto-hospedados".

All organizations have a single default runner group. Organizations within an enterprise account can create additional groups. Organization admins can allow individual repositories access to a runner group. For information about how to create a runner group with the REST API, see "Self-hosted runner groups."

Runners are automatically assigned to the default group when created, and can only be members of one group at a time. You can move a runner from the default group to any group you create.

When creating a group, you must choose a policy that defines which repositories and workflows have access to the runner group.

  1. On your GitHub Enterprise Server instance, navigate to the main page of the organization.

  2. No nome da sua organização, clique em Configurações. Botão Configurações da organização

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

  4. In the "Runner groups" section, click New runner group.

  5. Enter a name for your runner group.

  6. Atribua uma política para acesso ao repositório.

    É possível configurar o grupo de um executor para ser acessível a uma lista específica de repositórios ou a todos os repositórios na organização. Por padrão, apenas repositórios privados podem acessar executores no grupo do executor, mas você pode substituir isso. Esta configuração não pode ser substituída se configurar o grupo de executores da organização que foi compartilhado por uma empresa.

  7. Atribua uma política para acesso ao fluxo de trabalho.

    Você pode configurar um grupo de executores para ser acessível a uma lista específica de fluxos de trabalho ou a todos os fluxos de trabalho. Essa configuração não poderá ser substituída se você estiver configurando o grupo de executores de uma organização que foi compartilhado por uma empresa. Se você especificar o fluxo de trabalho que pode acessar o grupo de executores, precisará usar o caminho completo para o fluxo de trabalho, incluindo o nome e o proprietário do repositório, e fixar o fluxo de trabalho em um branch, uma tag ou um SHA completo. Por exemplo: 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.

    Somente os trabalhos definidos diretamente nos fluxos de trabalho selecionados terão acesso ao grupo de executores. Organization-owned runner groups cannot access workflows from a different organization in the enterprise; instead, you must create an enterprise-owned runner group.

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

Creating a self-hosted runner group for an enterprise

Aviso: Recomendamos que você use apenas executores auto-hospedados com repositórios privados. Isso acontece porque as bifurcações do seu repositório público podem executar código perigoso em seu computador de executor auto-hospedado criando uma solicitação de pull que executa o código em um fluxo de trabalho.

Para obter mais informações, confira "Sobre os executores auto-hospedados".

Enterprises can add their runners to groups for access management. Enterprises can create groups of runners that are accessible to specific organizations in the enterprise account or to specific workflows. Organization owners can then assign additional granular repository or workflow access policies to the enterprise runner groups. For information about how to create a runner group with the REST API, see the enterprise endpoints in the GitHub Actions REST API.

Runners are automatically assigned to the default group when created, and can only be members of one group at a time. You can assign the runner to a specific group during the registration process, or you can later move the runner from the default group to a custom group.

When creating a group, you must choose a policy that defines which organizations have access to the runner group.

  1. No canto superior à direita de GitHub Enterprise Server, clique na foto do perfil e clique em Configurações da empresa. "Configurações da empresa" no menu suspenso da foto do perfil em GitHub Enterprise Server

  2. Na barra lateral da empresa, clique em Políticas. Guia Políticas na barra lateral da conta corporativa

  3. Em " Políticas", clique em Actions.

  4. Clique na guia Grupos de executores.

  5. Click New runner group.

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

  7. To choose a policy for organization access, select the Organization access drop-down, and click a policy. You can configure a runner group to be accessible to a specific list of organizations, or all organizations in the enterprise. By default, only private repositories can access runners in a runner group, but you can override this.

    Add runner group options

  8. Atribua uma política para acesso ao fluxo de trabalho.

    Você pode configurar um grupo de executores para ser acessível a uma lista específica de fluxos de trabalho ou a todos os fluxos de trabalho. Essa configuração não poderá ser substituída se você estiver configurando o grupo de executores de uma organização que foi compartilhado por uma empresa. Se você especificar o fluxo de trabalho que pode acessar o grupo de executores, precisará usar o caminho completo para o fluxo de trabalho, incluindo o nome e o proprietário do repositório, e fixar o fluxo de trabalho em um branch, uma tag ou um SHA completo. Por exemplo: 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.

    Somente os trabalhos definidos diretamente nos fluxos de trabalho selecionados terão acesso ao grupo de executores.

  9. Click Save group to create the group and apply the policy.

Changing the access policy of a self-hosted runner group

Aviso: Recomendamos que você use apenas executores auto-hospedados com repositórios privados. Isso acontece porque as bifurcações do seu repositório público podem executar código perigoso em seu computador de executor auto-hospedado criando uma solicitação de pull que executa o código em um fluxo de trabalho.

Para obter mais informações, confira "Sobre os executores auto-hospedados".

For runner groups in an enterprise, you can change what organizations in the enterprise can access a runner group or restrict what workflows a runner group can run. For runner groups in an organization, you can change what repositories in the organization can access a runner group or restrict what workflows a runner group can run.

Changing what organizations or repositories can access a runner group

  1. Navigate to where your runner groups are located:

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

    • If using an enterprise-level group:

      1. No canto superior à direita de GitHub Enterprise Server, clique na foto do perfil e clique em Configurações da empresa. "Configurações da empresa" no menu suspenso da foto do perfil em GitHub Enterprise Server
  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. Na barra lateral da empresa, clique em Políticas. Guia Políticas na barra lateral da conta corporativa
      2. Em " Políticas", clique em Actions.
      3. Clique na guia Grupos de executores.
  3. Na lista de grupos, clique no grupo de executores que deseja configurar.

  4. For runner groups in an enterprise, under Organization access, modify what organizations can access the runner group. For runner groups in an organization, under Repository access, modify what repositories can access the runner group.

Changing what workflows can access a runner group

You can configure a runner group to run either selected workflows or all workflows. For example, you might use this setting to protect secrets that are stored on runners or to standardize deployment workflows by restricting a runner group to run only a specific reusable workflow. This setting cannot be overridden if you are configuring an organization's runner group that was shared by an enterprise.

  1. Navigate to where your runner groups are located:

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

    • If using an enterprise-level group:

      1. No canto superior à direita de GitHub Enterprise Server, clique na foto do perfil e clique em Configurações da empresa. "Configurações da empresa" no menu suspenso da foto do perfil em GitHub Enterprise Server
  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. Na barra lateral da empresa, clique em Políticas. Guia Políticas na barra lateral da conta corporativa
      2. Em " Políticas", clique em Actions.
      3. Clique na guia Grupos de executores.
  3. Na lista de grupos, clique no grupo de executores que deseja configurar.

  4. Under Workflow access, select the dropdown menu and click Selected workflows.

  5. Click .

  6. Enter a comma separated list of the workflows that can access the runner group. Use the full path, including the repository name and owner. Pin the workflow to a branch, tag, or full SHA. For example: 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.

    Organization-owned runner groups cannot access workflows from a different organization in the enterprise; instead, you must create an enterprise-owned runner group.

  7. Click Save.

Changing the name of a runner group

  1. Navigate to where your runner groups are located:

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

    • If using an enterprise-level group:

      1. No canto superior à direita de GitHub Enterprise Server, clique na foto do perfil e clique em Configurações da empresa. "Configurações da empresa" no menu suspenso da foto do perfil em GitHub Enterprise Server
  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. Na barra lateral da empresa, clique em Políticas. Guia Políticas na barra lateral da conta corporativa
      2. Em " Políticas", clique em Actions.
      3. Clique na guia Grupos de executores.
  3. Na lista de grupos, clique no grupo de executores que deseja configurar.

  4. Change the runner group name.

Automatically adding a self-hosted runner to a group

Você pode usar o script de configuração para adicionar automaticamente um novo executor a um grupo. Por exemplo, esse comando registra um novo executor e usa o parâmetro --runnergroup para adicioná-lo a um grupo chamado rg-runnergroup.

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

O comando irá falhar se o grupo do executor não existir:

Could not find any self-hosted runner group named "rg-runnergroup".

Moving a self-hosted runner to a group

If you don't specify a runner group during the registration process, your new runners are automatically assigned to the default group, and can then be moved to another group.

  1. Navegue por onde seu runner auto-hospedado está registrado:

    • Em uma organização: navegue até a página principal e clique em Configurações.

    • Se estiver usando um executor de classe empresarial:

      1. No canto superior à direita de GitHub Enterprise Server, clique na foto do perfil e clique em Configurações da empresa. "Configurações da empresa" no menu suspenso da foto do perfil em GitHub Enterprise Server
  2. Navegue até as configurações GitHub Actions:

    • Em uma organização:

      1. In the left sidebar, click Actions, then click Runners.
    • Se estiver usando um executor de classe empresarial:

      1. Na barra lateral da empresa, clique em Políticas. Guia Políticas na barra lateral da conta corporativa 1. Em " Políticas", clique em Actions. 1. Clique na guia Executores.
  3. In the "Runners" list, click the runner that you want to configure.

  4. Select the Runner group drop-down.

  5. In "Move runner to group", choose a destination group for the runner.

Removing a self-hosted runner group

Os executores são retornados automaticamente ao grupo padrão quando o grupo deles é removido.

  1. Navigate to where your runner groups are located:

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

    • If using an enterprise-level group:

      1. No canto superior à direita de GitHub Enterprise Server, clique na foto do perfil e clique em Configurações da empresa. "Configurações da empresa" no menu suspenso da foto do perfil em GitHub Enterprise Server
  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. Na barra lateral da empresa, clique em Políticas. Guia Políticas na barra lateral da conta corporativa
      2. Em " Políticas", clique em Actions.
      3. Clique na guia Grupos de executores.
  3. Na lista de grupos, à direita do grupo que você deseja excluir, clique em .

  4. Para remover o grupo, clique em Remover grupo.

  5. Revise as solicitações de confirmação e clique em Remover este grupo de executores. Todos os executores que ainda estiverem nesse grupo serão movidos automaticamente para o grupo padrão, herdando as permissões de acesso atribuídas a ele.