Skip to main content

Acerca de las redes privadas de Azure para ejecutores hospedados en GitHub en su organización

Puede crear una configuración de red privada para que su organización utilice ejecutores alojados der GitHub en sus redes virtuales de Azure (VNET).

¿Quién puede utilizar esta característica?

Los propietarios de organizaciones con el plan de GitHub Team pueden configurar redes privadas de Azure para ejecutores hospedados en GitHub en el nivel de organización.

Acerca de las redes privadas de Azure para ejecutores alojados 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 y administrar el acceso a recursos privados para los ejecutores a través de grupos de ejecutores. Para más información sobre 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 la VNET de Azure

Se admiten ejecutores de Ubuntu y Windows 2-64 vCPU con la VNET de Azure. Para más información sobre estos tipos de ejecutor, consulta 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 ejecutores de mayor capacidad, consulta 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.

Nota:

Pronto, los NIC creados por el servicio GitHub Actions ya no aparecerán en las suscripciones de Azure. En adelante, las NIC se aprovisionarán en una suscripción de servicio y se asignarán direcciones IP desde tu subred.

Diagrama de comunicación de red entre GitHub y tus redes privadas. Cada paso se numera y corresponde a un 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 regiones admitidas

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

Nota:

Si usa residencia de datos en GHE.com, las regiones admitidas son diferentes. Consulta Detalles de red para GHE.com.

Las regiones siguientes se admiten en GitHub.com.

  • AustraliaEast
  • BrazilSouth
  • CanadaCentral
  • CanadaEast
  • CentralUs
  • EastAsia
  • EastUs
  • EastUs2
  • FranceCentral
  • GermanyWestCentral
  • JapanWest
  • KoreaCentral
  • NorthCentralUs
  • NorthEurope
  • NorwayEast
  • SouthCentralUs
  • SoutheastAsia
  • SouthIndia
  • SwedenCentral
  • SwitzerlandNorth
  • UkSouth
  • UkWest
  • WestUs
  • WestUs2
  • WestUs3

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

  • EastUs
  • NorthCentralUs
  • SouthCentralUs
  • WestUs

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

  • CentralUs
  • EastUs
  • EastUs2
  • NorthCentralUs
  • SouthCentralUs
  • WestUs
  • WestUs2
  • WestUs3

Pronto iniciaremos un proceso para solicitar soporte técnico para las nuevas regiones. 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
  • GitHub.Network/RegisteredSubscriptions/read
  • 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.

Los ejecutores hospedados de GitHub usan cualquier control saliente que usa la red. Si la red se basa en el acceso saliente predeterminado de Azure, las direcciones IP no son predecibles y no se pueden agregar a la lista de direcciones IP permitidas de GitHub. Para obtener recomendaciones sobre el uso de una dirección IP de salida estable, consulta Acceso de salida predeterminado en la documentación de Azure.

Acerca de la conmutación por error de red virtual

Nota:

La conmutación por error de VNET se encuentra en versión preliminar pública y está sujeta a cambios.

Puede configurar una red de conmutación por error para la configuración de red. Una red de conmutación por error es una subred secundaria de Azure Virtual Network, que puede estar en una región de Azure diferente de la subred principal. Si su subred principal deja de estar disponible debido a una interrupción regional u otra perturbación, puede habilitar la red de conmutación por error para enrutar el tráfico de los ejecutores a través de la subred secundaria, manteniendo la continuidad de sus flujos de trabajo GitHub Actions.

Puntos clave sobre la conmutación por error de VNET.

  • La subred de conmutación por error puede residir en una región de Azure diferente de la subred principal.
  • El cambio entre subredes principal y de conmutación por error es un proceso manual. Usted puede habilitar o deshabilitar la red de conmutación por error según su criterio.
  • Las subredes principal y de conmutación por error deben configurarse con los recursos de Azure necesarios (red virtual o subred, configuración de red, etc.) antes de poder usar la conmutación por error.
  • La subred de conmutación por error debe estar en una región admitida.

Para obtener más información sobre cómo configurar una red de conmutación por error, consulte Configuración de redes privadas para los ejecutores hospedados en GitHub en su organización.

Usar los ejecutores alojados en GitHub con una red virtual de Azure

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

A fin de obtener los procedimientos para configurar redes privadas de Azure en el nivel de organización, consulta Configuración de redes privadas para los ejecutores hospedados en GitHub en su organización.