Skip to main content

Sobre a rede privada do Azure para executores hospedados no GitHub em sua empresa

Você pode criar uma configuração de rede privada para sua empresa usar executores hospedados pela GitHub em suas Redes Virtuais do Azure (VNET).

Quem pode usar esse recurso?

Enterprise owners can create private network configurations at the enterprise level to use GitHub-hosted runners with an Azure VNET.

Sobre as redes privadas do Azure com executores hospedados pela GitHub

Você pode usar executores hospedados no GitHub em uma VNET do Azure. Isso permite usar a infraestrutura gerenciada pela GitHub para CI/CD e, ao mesmo tempo, fornece controle total sobre as políticas de rede dos seus executores. Para obter mais informações sobre VNETs do Azure, consulte O que é uma Rede Virtual do Azure?, na documentação do Azure.

Você pode conectar várias sub-redes VNET ao GitHub.com e gerenciar o acesso aos recursos privados para seus executores por meio de grupos de executores. Para obter mais informações sobre os grupos de executores, confira "Como controlar o acesso a executores maiores".

O uso de executores hospedados em GitHub na VNET do Azure permite que você execute as seguintes ações.

  • Conectar um executor de forma privada a recursos dentro de uma VNET do Azure sem abrir portas da Internet, incluindo recursos locais acessíveis a partir da VNET do Azure.
  • Restrinja o que os executores hospedados em GitHub podem acessar ou se conectar com controle total sobre as políticas de rede de saída.
  • Monitore os logs de rede dos executores hospedados em GitHub e exiba toda a conectividade de e para um executor.

Sobre o uso de executores avançados com a VNET do Azure

2 executores de 64 vCPU, Ubuntu e Windows têm suporte com o Azure VNET. Para obter mais informações sobre esses tipos de executores, consulte "Sobre executores maiores".

A rede privada para executores hospedados pela GitHub não oferece suporte para endereços IP estáticos para executores avançados. Você deve usar endereços IP dinâmicos, que é a configuração padrão de executores avançados. Para saber mais sobre redes para executores maiores, confira "Sobre executores maiores".

Sobre a comunicação em rede

Para facilitar a comunicação entre as redes do GitHub e sua VNET, uma placa de interface de rede (NIC) do executor hospedado pela GitHub é implantada na VNET do Azure.

Como a NIC vive dentro da sua VNET, a GitHub não pode bloquear conexões de entrada. Por padrão, as máquinas virtuais do Azure aceitarão conexões de entrada da mesma VNET. Para obter mais informações, confira AllowVNetInBound no Microsoft Learn. Recomenda-se bloquear explicitamente todas as conexões de entrada para os corredores. O GitHub nunca exigirá conexões de entrada para essas máquinas.

Uma NIC permite que uma VM (máquina virtual) do Azure comunique-se com a Internet, com o Azure e com recursos locais. Dessa forma, toda a comunicação é mantida privada dentro dos limites da rede, e as políticas de rede aplicadas à VNET também se aplicam ao executor. Para obter mais informações sobre como gerenciar uma interface de rede, consulte Alterar configurações da interface de rede no Microsoft Learn.

Note

Várias NICs podem aparecer para um único trabalho em sua assinatura porque o serviço GitHub Actions provisiona recursos em excesso para executar trabalhos. Assim que um executor estiver ocioso, o serviço GitHub Actions desprovisiona automaticamente o recurso e remove a NIC correspondente.

Diagrama da arquitetura de comunicação de rede entre as redes do GitHub e suas redes privadas. O diagrama descreve cada etapa da conexão de executores hospedados no GitHub a uma VNET do Azure. Cada etapa é numerada e os números correspondem às descrições numeradas da etapa listada abaixo do diagrama.

  1. Um fluxo de trabalho do GitHub Actions é acionado.
  2. O serviço GitHub Actions cria um executor.
  3. O serviço do executor implanta a placa de interface de rede (NIC) do executor hospedado pelo GitHub em sua VNET do Azure.
  4. O agente de execução seleciona o trabalho de fluxo de trabalho. O serviço GitHub Actions coloca o trabalho na fila.
  5. O executor envia os registros de volta para o serviço GitHub Actions.
  6. A NIC acessa recursos no local.

Sobre as regiões com suporte

O serviço GitHub Actions oferece suporte a um subconjunto de todas as regiões oferecidas pelo Azure. Para facilitar a comunicação entre o serviço GitHub Actions e sua sub-rede, ela deve estar em uma das seguintes regiões suportadas.

  • EastUs
  • EastUs2
  • WestUs2
  • AustraliaEast
  • CentralUs
  • FranceCentral
  • NorthEurope
  • NorwayEast
  • SoutheastAsia
  • SwitzerlandNorth
  • UkSouth

A rede privada do Azure oferece suporte a executores de GPU nas seguintes regiões.

  • EastUs
  • WestUs
  • NorthCentralUs
  • SouthCentralUs

Você tambémpode usar emparelhamento de rede virtual global para conectar redes virtuais em diferentes regiões do Azure. Para obter mais informações, consulte Emparelhamento de Rede Virtual na documentação do Azure.

Sobre as permissões do serviço GitHub Actions

Para implantar com êxito uma NIC e ingressar uma NIC em uma sub-rede, o serviço GitHub Actions mantém as seguintes permissões de controle de acesso baseado em função (RBAC) do Azure na sua assinatura do Azure. Para obter mais informações sobre o gerenciamento de acesso refinado de recursos do Azure, consulte RBAC do Azure na documentação do Azure.

  • GitHub.Network/operations/read
  • GitHub.Network/networkSettings/read
  • GitHub.Network/networkSettings/write
  • GitHub.Network/networkSettings/delete
  • Microsoft.Network/locations/operations/read
  • Microsoft.Network/locations/operationResults/read
  • Microsoft.Network/locations/usages/read
  • Microsoft.Network/networkInterfaces/read
  • Microsoft.Network/networkInterfaces/write
  • Microsoft.Network/networkInterfaces/delete
  • Microsoft.Network/networkInterfaces/join/action
  • Microsoft.Network/networkSecurityGroups/join/action
  • Microsoft.Network/networkSecurityGroups/read
  • Microsoft.Network/publicIpAddresses/read
  • Microsoft.Network/publicIpAddresses/write
  • Microsoft.Network/publicIPAddresses/join/action
  • Microsoft.Network/routeTables/join/action
  • Microsoft.Network/virtualNetworks/read
  • Microsoft.Network/virtualNetworks/subnets/join/action
  • Microsoft.Network/virtualNetworks/subnets/read
  • Microsoft.Network/virtualNetworks/subnets/write
  • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/delete
  • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/read
  • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/write
  • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/details/read
  • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/action
  • Microsoft.Resources/subscriptions/resourceGroups/read
  • Microsoft.Resources/subscriptions/resourcegroups/deployments/read
  • Microsoft.Resources/subscriptions/resourcegroups/deployments/write
  • Microsoft.Resources/subscriptions/resourcegroups/deployments/operations/read
  • Microsoft.Resources/deployments/read
  • Microsoft.Resources/deployments/write
  • Microsoft.Resources/deployments/operationStatuses/read

As permissões a seguir estarão presentes em dois aplicativos empresariais em seu locatário do Azure. Você verá os aplicativos empresariais do seu locatário do Azure depois de configurar a rede privada do Azure.

  • id do GitHub CPS Network Service: 85c49807-809d-4249-86e7-192762525474
  • id do GitHub Actions API: 4435c199-c3da-46b9-a61d-76de3f2c9f82

Usando políticas de rede da sua VNET

Como a NIC do executor hospedado no GitHub é implantada em sua VNET do Azure, as políticas de rede aplicadas à VNET também se aplicam ao executor.

Por exemplo, se a sua VNET estiver configurada com um Azure ExpressRoute para fornecer acesso a recursos locais (por exemplo, Artifactory) ou conectada a um túnel VPN para fornecer acesso a outros recursos baseados em nuvem, essas políticas de acesso também se aplicarão aos seus executores. Além disso, todas as regras de saída aplicadas ao grupo de segurança de rede (NSG) da VNET também se aplicam, o que lhe dá a capacidade de controlar o acesso de saída dos seus executores.

Se você tiver ativado qualquer monitoramento de logs de rede para a VNET, também poderá monitorar o tráfego de rede para seus executores.

Usando executores hospedados no GitHub com uma VNET do Azure

Para usar executores hospedados do GitHub com uma VNET do Azure, você precisará configurar seus recursos do Azure e então criar uma configuração de rede no GitHub.

Para obter procedimentos para configurar a rede privada do Azure no nível da empresa, consulte "Configurar redes privadas para executores hospedados no GitHub em sua empresa".