Skip to main content

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

Puedes crear una configuración de red privada para tu empresa para usar ejecutores hospedados de GitHub en tu(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 configuración de la red privada para 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 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 la 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 la lista de 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 regiones admitidas.

Note

Si usas la diferente residencia en GHE.com, las regiones admitidas son diferentes. Consulte "Detalles de red para GHE.com".

Las siguientes regiones se admiten en GitHub.com.

  • EastUs
  • EastUs2
  • WestUs2
  • WestUs3
  • CentralUs
  • NorthCentralUs
  • AustraliaEast
  • JapanEast
  • FranceCentral
  • GermanyWestCentral
  • NorthEurope
  • NorwayEast
  • SwedenCentral
  • SwitzerlandNorth
  • UkSouth
  • SoutheastAsia
  • KoreaCentral

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

  • EastUs
  • WestUs
  • NorthCentralUs

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

  • EastUs
  • EastUs2
  • WestUs2
  • WestUs3
  • NorthCentralUs

Si no se admite la región deseada, envía una solicitud de disponibilidad de región nueva en este formulario de GitHub. 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.

Administración de directivas de configuración de red para organizaciones en la empresa

Puedes conceder a los propietarios de la organización en tu empresa la capacidad de configurar y mantener configuraciones de red de nivel de organización para ejecutores hospedados en GitHub.

Para más información, consulta Configuración de redes privadas para los ejecutores hospedados en GitHub en su empresa.

Uso de los ejecutores hospedados GitHub con una VNet 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.

De manera predeterminada, las organizaciones de una empresa no pueden crear configuraciones de red y solo heredan configuraciones de red de nivel empresarial. Los propietarios de empresas pueden establecer una directiva que permita a las organizaciones de la empresa crear configuraciones de red independientes de la empresa. Para obtener más información, vea «Configuración de redes privadas para los ejecutores hospedados en GitHub en su empresa».

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

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