Skip to main content

Acerca de las redes privadas de Azure para ejecutores hospedados en GitHub en su empresa

Puede crear una configuración de red privada praa su empresa para usar ejecutores hospedados de GitHub en su(s) Virtual Network (VNet) de Azure.

¿Quién puede utilizar esta característica?

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

Acerca de la red privada de Azure para los ejecutores hospedados en GitHub

Puede utilizar los ejecutores hospedados en GitHub con una VNet de Azure Esto le permite utilizar la infraestructura administrada en GitHub para el CI/CD, a la vez que proporciona control total sobre las directivas de red de los ejecutores. Para más información sobre Azure VNET, consulta ¿Qué es Azure Virtual Network? en la documentación de Azure.

Puede conectar varias subredes VNET a GitHub.com y administrar el acceso a recursos privados para los ejecutores a través de grupos de ejecutores. Para más información acerca de los grupos de ejecutores, consulta "Control del acceso a los ejecutores más grandes."

El uso de ejecutores GitHub-hospedados dentro de Azure VNET permite realizar las siguientes acciones.

  • Conecte de forma privada un ejecutor a los recursos dentro de una VNET de Azure sin abrir puertos de Internet, incluidos los recursos locales accesibles desde la VNet de Azure.
  • Restringe a qué recursos pueden acceder, o conectarse a ellos, los ejecutores GitHub- hospedados con control total sobre las directivas de red salientes.
  • Supervisa los registros de red de los ejecutores GitHub-hospedados y observa toda la conectividad hacia y desde un ejecutor.

Acerca del uso de ejecutores de mayor capacidad con VNet de Azure

Se admiten ejecutores de Ubuntu y Windows 2-64 vCPU con la VNET de Azure. Para obtener más información acerca de los grupos de ejecutores, véase "Acerca de los ejecutores más grandes."

Las redes privadas para ejecutores hospedados en GitHub no son compatibles con direcciones IP estáticas para ejecutadores de mayor capacidad. Debe usar direcciones IP dinámicas, que es la configuración predeterminada para los ejecutadores de mayor capacidad. Para más información sobre conexiones en red para ejecutadores de mayor capacidad, véase "Acerca de los ejecutores más grandes".

Información sobre la comunicación de red

Para facilitar la comunicación entre las redes de GitHub y la VNet, una tarjeta de interfaz de red (NIC) hospedada en GitHub se despliega en su VNet de Azure.

Dado que la NIC reside dentro de la VNET, GitHub no pueden bloquear las conexiones entrantes. De manera predeterminada, las máquinas virtuales de Azure aceptarán conexiones entrantes de la misma VNET. Para más información, consulta AllowVNetInBound en Microsoft Learn. Se recomienda bloquear explícitamente todas las conexiones entrantes a los ejecutores. GitHub nunca requerirá conexiones entrantes a estas máquinas.

Una NIC permite que una máquina virtual (VM) de Azure se comunique con internet, Azure y los recursos en el entorno local. De este modo, toda la comunicación se mantiene privada dentro de los límites de red y las directivas de red aplicadas a la VNet también se aplican al ejecutor. Para más información sobre cómo administrar una interfaz de red, consulta Cambio de la configuración de la interfaz de red en Microsoft Learn.

Note

Es posible que aparezcan varias NIC para un único trabajo en la suscripción porque el servicio GitHub Actions sobreaprovisiona recursos para ejecutar trabajos. Una vez que un ejecutor está inactivo, el servicio GitHub Actions desaprovisiona automáticamente el recurso y elimina la NIC correspondiente.

Diagrama de la arquitectura de comunicación de red entre las redes de GitHub y las redes privadas. En el diagrama se describe cada paso para conectar ejecutores hospedados en GitHub a una VNet de Azure. Cada paso se numera y los números corresponden a las descripciones numeradas del paso que se muestra debajo del diagrama.

  1. Se activó un flujo de trabajo GitHub Actions.
  2. El servicio GitHub Actions crea un ejecutador.
  3. El servicio ejecutor implementa el ejecutor hospedado GitHub de la tarjeta de interfaz de red (NIC) en su Azure VNet.
  4. El agente ejecutor recoge la tarea del flujo de trabajo. El servicio GitHub Actions pone a la espera el trabajo.
  5. El ejecutor devuelve los registros al servicio GitHub Actions.
  6. La NIC accede a los recursos locales.

Acerca de las regiones admitidas

El servicio GitHub Actions admite un subconjunto de todas las regiones que proporciona Azure. Para facilitar la comunicación entre el servicio GitHub Actions y la subred, la subred debe estar en una de las siguientes regiones admitidas.

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

Las redes privadas de Azure admiten ejecutores de GPU en las siguientes regiones.

  • EastUs
  • WestUs
  • NorthCentralUs
  • SouthCentralUs

También puede usar el emparejamiento global de redes virtuales para conectar redes virtuales en distintas regiones de Azure. Para obtener más información, consulte Emparejamiento de redes virtuales en la documentación de Azure.

Acerca de los permisos del servicio GitHub Actions

Para implementar correctamente una NIC y unir una NIC a una subred, el servicio GitHub Actions mantiene los siguientes permisos de control de acceso basado en roles (RBAC) en la suscripción de Azure. Consulte la documentación de Azure sobre RBAC de Azure para obtener más información sobre la administración de accesos específicos de recursos de 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

Los siguientes permisos estarán presentes en dos aplicaciones empresariales en el inquilino de Azure. Verá las aplicaciones empresariales de su inquilino de Azure después de configurar las redes privadas de Azure.

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

Uso de las directivas de red de la VNet

Dado que el ejecutor hospedado NIC GitHub se implementa en la VNet de Azure, las directivas de red aplicadas a la VNet también se aplican al ejecutor.

Por ejemplo, si la VNet está configurada con una instancia de Azure ExpressRoute para proporcionar acceso a recursos locales (pr ejemplo, artefactos), o conectada a un túnel VPN para proporcionar acceso a otros recursos basados en la nube, esas directivas de acceso también se aplican a los ejecutores. Además, las reglas de salida aplicadas al grupo de seguridad de red (NSG) de la VNet también se aplican, lo que le permite controlar el acceso saliente para los ejecutores.

Si ha habilitado la supervisión de registros de red para la VNet, también puede supervisar el tráfico de red de los ejecutores.

Uso de los ejecutores hospedados GitHub con una VNet de Azure

Para usar ejecutores alojados por GitHub con una VNET de Azure, deberá configurar los recursos de Azure y, a continuación, crear una configuración de red en GitHub.

Para conocer los procedimientos para configurar redes privadas de Azure en el nivel de empresa, consulta "Configuración de redes privadas para los ejecutores hospedados en GitHub en su empresa".