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.
- Se activó un flujo de trabajo GitHub Actions.
- El servicio GitHub Actions crea un ejecutador.
- El servicio ejecutor implementa el ejecutor hospedado GitHub de la tarjeta de interfaz de red (NIC) en su Azure VNet.
- El agente ejecutor recoge la tarea del flujo de trabajo. El servicio GitHub Actions pone a la espera el trabajo.
- El ejecutor devuelve los registros al servicio GitHub Actions.
- 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.
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".