Skip to main content

Gerenciar o acesso a executores auto-hospedados usando grupos

Você pode usar políticas para limitar o acesso a executores auto-hospedados adicionados a uma organização ou empresa.

Para obter informações sobre como rotear trabalhos para executores em um grupo específico, confira "Escolher executores em um grupo."

Sobre os grupos de executores

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".

Criar um grupo de executor auto-hospedado para uma organização

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".

Todas as organizações têm um só grupo de executores padrão. As organizações dentro de uma conta de empresa podem criar grupos adicionais. Os administradores da organização podem permitir o acesso de repositórios individuais a um grupo de executor. Para obter informações sobre como criar um grupo de executores com a API REST, confira "Grupos de executores auto-hospedados".

Os executores são automaticamente atribuídos ao grupo padrão quando criados e só podem ser membros de um grupo por vez. Você pode mover um executor do grupo- padrão para qualquer grupo que você criar.

Ao criar um grupo, você deve escolher uma política que defina quais repositórios e fluxos de trabalho têm acesso ao grupo do executor.

  1. No GitHub.com, navegue até a página principal da organização. 1. No nome da sua organização, clique em Configurações. Botão Configurações da organização 1. Na barra lateral esquerda, clique em Ações e em Grupos de executores.

  2. Na seção "Grupos de executores", clique em Novo grupo de executores.

  3. Digite um nome para o grupo do seu executor.

  4. 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.

  5. 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. Os grupos de executores pertencentes à organização não podem acessar os fluxos de trabalho de outra organização na empresa. Você precisa criar um grupo de executores pertencente à empresa. 1. Clique em Criar grupo para criar o grupo e aplicar a política.

Criar um grupo de executor auto-hospedado para uma empresa

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".

As empresas podem adicionar os executores delas a grupos para gerenciamento de acesso. As empresas podem criar grupos de executores acessíveis por meio de organizações específicas na conta da empresa ou por fluxos de trabalho específicos . Os proprietários da organização podem atribuir políticas adicionais de acesso do repositório granular ou políticas de acesso do fluxo de trabalho para os grupos de executores corporativos. Para obter informações sobre como criar um grupo de executores com a API REST, confira os pontos de extremidade da empresa na API REST de GitHub Actions.

Os executores são automaticamente atribuídos ao grupo padrão quando criados e só podem ser membros de um grupo por vez. Você pode atribuir o executor a um grupo específico durante o processo de registro, ou você pode mover o executor do grupo-padrão para um grupo personalizado.

Ao criar um grupo, você deve escolher uma política que defina quais organizações têm acesso ao grupo de executores.

  1. No canto superior direito do GitHub.com, clique na foto do seu perfil e em Suas empresas. "Suas empresas" no menu suspenso na foto de perfil no GitHub Enterprise Cloud

  2. Na lista de empresas, clique na empresa que você deseja visualizar. Nome de uma empresa na lista das suas empresas

  3. 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 Grupos de executores.

  4. Clique em Novo grupo de executores.

  5. Em "Nome do grupo", digite um nome para o grupo de executores.

  6. Para escolher uma política para o acesso da organização, selecione o menu suspenso Acesso à organização e clique em uma política. Você pode configurar um grupo de executor para que possa ser acessado por uma lista específica de organizações ou a todas as organizações da empresa.

    Opções de Adicionar grupo de executores

  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.

  8. Clique em Salvar grupo para criar o grupo e aplicar a política.

Alterar a política de acesso de um grupo de executores auto-hospedados

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".

Para grupos de executores em uma empresa, você pode mudar quais organizações na empresa podem acessar um grupo de executores ou restringir quais fluxos de trabalho um grupo de executores pode executar. Para grupos de executores em uma organização, você pode alterar quais repositórios na organização podem acessar um grupo de executores ou restringir quais fluxos de trabalho um grupo de executores pode executar.

Alterando quais organizações ou repositórios podem acessar um grupo de executores

  1. Navegue até onde seus grupos de executores estão localizados:

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

    • Se estiver usando um grupo de classe empresarial:

      1. No canto superior direito do GitHub.com, clique na foto do seu perfil e em Suas empresas. "Suas empresas" no menu suspenso na foto de perfil no GitHub Enterprise Cloud

      2. Na lista de empresas, clique na empresa que você deseja visualizar. Nome de uma empresa na lista das suas empresas

  2. Navegue até as configurações "Grupos de executor":

    • Em uma organização:

      1. Na barra lateral esquerda, clique em Ações e em Grupos de executores.
    • Se estiver usando um grupo 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 Grupos de executores. 1. Na lista de grupos, clique no grupo de executores que deseja configurar.
  3. Para os grupos de executores em uma empresa, em Acesso da organização, modifique as organizações que podem acessar o grupo de executores. Para os grupos de executores em uma organização, em Acesso do repositório, modifique os repositórios que podem acessar o grupo de executores.

Alterando quais fluxos de trabalho podem acessar um grupo de executores

Você pode configurar um grupo de executores para executar fluxos de trabalho selecionados ou todos os fluxos de trabalho. Por exemplo, você pode usar essa configuração para proteger segredos armazenados em executores auto-hospedados ou para padronizar os fluxos de trabalho de implantação restringindo um grupo de executores a fim de executar apenas um fluxo de trabalho reutilizável específico. Esta configuração não pode ser substituída se você configurar o grupo de executores da organização que foi compartilhado por uma empresa.

  1. Navegue até onde seus grupos de executores estão localizados:

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

    • Se estiver usando um grupo de classe empresarial:

      1. No canto superior direito do GitHub.com, clique na foto do seu perfil e em Suas empresas. "Suas empresas" no menu suspenso na foto de perfil no GitHub Enterprise Cloud

      2. Na lista de empresas, clique na empresa que você deseja visualizar. Nome de uma empresa na lista das suas empresas

  2. Navegue até as configurações "Grupos de executor":

    • Em uma organização:

      1. Na barra lateral esquerda, clique em Ações e em Grupos de executores.
    • Se estiver usando um grupo 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 Grupos de executores. 1. Na lista de grupos, clique no grupo de executores que deseja configurar.
  3. Em Acesso ao fluxo de trabalho, selecione o menu suspenso e clique em Fluxos de trabalho selecionados.

  4. Clique em .

  5. Insira uma lista separada por vírgulas dos fluxos de trabalho que podem acessar o grupo de executores. Use o caminho completo, incluindo o nome e proprietário do repositório. Fixar o fluxo de trabalho em um ramo, tag ou 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.

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

    Os grupos de executores pertencentes à organização não podem acessar os fluxos de trabalho de uma organização diferente na empresa. Em vez disso, você deve criar um grupo de executores pertencente à empresa.

  6. Clique em Salvar.

Alterando o nome de um grupo de executores

  1. Navegue até onde seus grupos de executores estão localizados:

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

    • Se estiver usando um grupo de classe empresarial:

      1. No canto superior direito do GitHub.com, clique na foto do seu perfil e em Suas empresas. "Suas empresas" no menu suspenso na foto de perfil no GitHub Enterprise Cloud

      2. Na lista de empresas, clique na empresa que você deseja visualizar. Nome de uma empresa na lista das suas empresas

  2. Navegue até as configurações "Grupos de executor":

    • Em uma organização:

      1. Na barra lateral esquerda, clique em Ações e em Grupos de executores.
    • Se estiver usando um grupo 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 Grupos de executores. 1. Na lista de grupos, clique no grupo de executores que deseja configurar.
  3. Altere o nome do grupo de executores.

Adicionando um executor auto-hospedado a um grupo automaticamente

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".

Mover um executor auto-hospedado para um grupo

Se você não especificar o grupo de um executor durante o processo de registro, seus novos executores são automaticamente atribuídos ao grupo padrão e poderão ser transferidos para outro grupo.

  1. Navegue até onde seu executor 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 direito do GitHub.com, clique na foto do seu perfil e em Suas empresas. "Suas empresas" no menu suspenso na foto de perfil no GitHub Enterprise Cloud

      2. Na lista de empresas, clique na empresa que você deseja visualizar. Nome de uma empresa na lista das suas empresas

  2. Navegue até as configurações GitHub Actions:

    • Em uma organização:

      1. Na barra lateral esquerda, clique em Ações e em Executores.
    • 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. Na lista de "Executores", clique no executor que você deseja configurar.

  4. Selecione o menu suspenso Grupo de executores.

  5. Em "Transferir executor para o grupo", escolha um grupo de destino para o executor.

Remover um grupo de executor auto-hospedado

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

  1. Navegue até onde seus grupos de executores estão localizados:

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

    • Se estiver usando um grupo de classe empresarial:

      1. No canto superior direito do GitHub.com, clique na foto do seu perfil e em Suas empresas. "Suas empresas" no menu suspenso na foto de perfil no GitHub Enterprise Cloud

      2. Na lista de empresas, clique na empresa que você deseja visualizar. Nome de uma empresa na lista das suas empresas

  2. Navegue até as configurações "Grupos de executor":

    • Em uma organização:

      1. Na barra lateral esquerda, clique em Ações e em Grupos de executores.
    • Se estiver usando um grupo 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 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.

Usar nomes exclusivos para grupos de executores

GitHub Actions exige que os nomes de grupos de executores precisem ser exclusivos no nível da organização. Isso significa que uma organização não poderá mais criar um grupo de executores com o mesmo nome que um na empresa. Além disso, os usuários verão uma faixa de aviso em qualquer grupo de executores que compartilhem o mesmo nome de um grupo na empresa, sugerindo que o grupo da organização deve ser renomeado.

Para evitar ambiguidade, um fluxo de trabalho falhará se houver grupos de executores duplicados na organização e na empresa. Para resolver isso, você pode renomear um dos grupos de executores na organização ou na empresa ou atualizar o arquivo de fluxo de trabalho para adicionar um prefixo ao nome do grupo de executores:

  • org/ ou organization/
  • ent/ ou enterprise/

Exemplo: usar prefixos para diferenciar grupos de executores

Por exemplo, se você tiver um grupo de executores chamado my-group na organização e outro chamado my-group na empresa, poderá atualizar seu arquivo de fluxo de trabalho para usar org/my-group ou ent/my-group para diferenciar os dois.

Usando org/:

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

Usando ent/:

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