Skip to main content

Configuración de redes privadas para los ejecutores hospedados en GitHub en su organización

Aprenda cómo usar ejecutores hospedados en GitHub con una red privada de Azure en su organización.

¿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

Para usar ejecutores hospedados en GitHub con VNET de Azure, primero configure los recursos de Azure. A continuación, cree una configuración de red privada en GitHub.

Los siguientes procedimientos le guiarán a través de ambos pasos.

Para más información sobre cómo solucionar problemas comunes con el uso de ejecutores hospedados en GitHub con VNET de Azure, consulta Solución de problemas de configuraciones de red privada de Azure para los ejecutores hospedados en GitHub en su organización..

Configuración de los recursos de Azure

Usará un script para automatizar la configuración de los recursos de Azure.

Requisitos previos

  • Use una cuenta de Azure con el rol de colaborador de la suscripción y el rol de colaborador de red. Estos roles permiten registrar el proveedor de recursos GitHub.Network y delegar la subred. Para más información, consulta Roles integrados de Azure en Microsoft Learn.

  • Para asociar correctamente las subredes con el usuario adecuado, los recursos de NetworkSettings de Azure se deben crear en las mismas suscripciones en las que se crean las redes virtuales.

  • Para garantizar la disponibilidad de recursos o la residencia de datos, los recursos deben crearse en la misma región de Azure.

  • El tráfico de red saliente de la subred no debe estar sujeto a la interceptación de TLS, ya que nuestras máquinas virtuales no se configurarán para confiar en certificados intermedios que la red usa para realizar la interceptación de TLS. Para más información, consulte Certificados usados por Azure Firewall Premium en la documentación de Microsoft.

    Si necesita usar la interceptación de TLS, puede instalar certificados intermedios a través de una imagen personalizada. Consulta Uso de imágenes personalizadas.

  • Guarde el siguiente archivo .bicep. Asigna al archivo el nombre actions-nsg-deployment.bicep.

    El archivo .bicep que proporcionamos contiene el conjunto mínimo de reglas para usar ejecutores hospedados en GitHub con red virtual de Azure. Es posible que tenga que agregar reglas para su caso de uso específico.

    Si usas Nube de GitHub Enterprise con residencia de datos, en la sección AllowOutBoundGitHub, también debes incluir los intervalos IP de salida para GHE.com. Consulta Detalles de red para GHE.com.

    Nota:

    Como alternativa al uso del siguiente archivo, para permitir que GitHub Actions se comunique con los ejecutores, puedes permitir los mismos dominios de firewall necesarios para la comunicación entre los ejecutores autohospedados y GitHub. Para más información, consulta Referencia de ejecutores autohospedados. Para determinar el intervalo de direcciones IP de subred adecuado, se recomienda agregar un búfer del 30 % superior a la simultaneidad máxima del trabajo previsto. Por ejemplo, si los ejecutores de la configuración de red se establecen en una simultaneidad de trabajo máxima de 300, se recomienda usar un intervalo de direcciones IP de subred que pueda contener al menos 390 ejecutores. Este búfer ayuda a garantizar que la red pueda controlar los aumentos inesperados de las máquinas virtuales para satisfacer la simultaneidad del trabajo sin que se le agoten las direcciones IP.

    Bicep
    @description('NSG for outbound rules')
    param location string
    param nsgName string = 'actions_NSG'
    
    resource actions_NSG 'Microsoft.Network/networkSecurityGroups@2017-06-01' = {
      name: nsgName
      location: location
      properties: {
        securityRules: [
          {
            name: 'AllowVnetOutBoundOverwrite'
            properties: {
              protocol: 'TCP'
              sourcePortRange: '*'
              destinationPortRange: '443'
              sourceAddressPrefix: '*'
              destinationAddressPrefix: 'VirtualNetwork'
              access: 'Allow'
              priority: 200
              direction: 'Outbound'
              destinationAddressPrefixes: []
            }
          }
          {
            name: 'AllowOutBoundActions'
            properties: {
              protocol: '*'
              sourcePortRange: '*'
              destinationPortRange: '443'
              sourceAddressPrefix: '*'
              access: 'Allow'
              priority: 210
              direction: 'Outbound'
              destinationAddressPrefixes: [
                '4.175.114.51/32'
                '20.102.35.120/32'
                '4.175.114.43/32'
                '20.72.125.48/32'
                '20.19.5.100/32'
                '20.7.92.46/32'
                '20.232.252.48/32'
                '52.186.44.51/32'
                '20.22.98.201/32'
                '20.246.184.240/32'
                '20.96.133.71/32'
                '20.253.2.203/32'
                '20.102.39.220/32'
                '20.81.127.181/32'
                '52.148.30.208/32'
                '20.14.42.190/32'
                '20.85.159.192/32'
                '52.224.205.173/32'
                '20.118.176.156/32'
                '20.236.207.188/32'
                '20.242.161.191/32'
                '20.166.216.139/32'
                '20.253.126.26/32'
                '52.152.245.137/32'
                '40.118.236.116/32'
                '20.185.75.138/32'
                '20.96.226.211/32'
                '52.167.78.33/32'
                '20.105.13.142/32'
                '20.253.95.3/32'
                '20.221.96.90/32'
                '51.138.235.85/32'
                '52.186.47.208/32'
                '20.7.220.66/32'
                '20.75.4.210/32'
                '20.120.75.171/32'
                '20.98.183.48/32'
                '20.84.200.15/32'
                '20.14.235.135/32'
                '20.10.226.54/32'
                '20.22.166.15/32'
                '20.65.21.88/32'
                '20.102.36.236/32'
                '20.124.56.57/32'
                '20.94.100.174/32'
                '20.102.166.33/32'
                '20.31.193.160/32'
                '20.232.77.7/32'
                '20.102.38.122/32'
                '20.102.39.57/32'
                '20.85.108.33/32'
                '40.88.240.168/32'
                '20.69.187.19/32'
                '20.246.192.124/32'
                '20.4.161.108/32'
                '20.22.22.84/32'
                '20.1.250.47/32'
                '20.237.33.78/32'
                '20.242.179.206/32'
                '40.88.239.133/32'
                '20.121.247.125/32'
                '20.106.107.180/32'
                '20.22.118.40/32'
                '20.15.240.48/32'
                '20.84.218.150/32'
              ]
            }
          }
          {
            name: 'AllowOutBoundGitHub'
            properties: {
              protocol: '*'
              sourcePortRange: '*'
              destinationPortRange: '443'
              sourceAddressPrefix: '*'
              access: 'Allow'
              priority: 220
              direction: 'Outbound'
              destinationAddressPrefixes: [
                '140.82.112.0/20'
                '143.55.64.0/20'
                '185.199.108.0/22'
                '192.30.252.0/22'
                '20.175.192.146/32'
                '20.175.192.147/32'
                '20.175.192.149/32'
                '20.175.192.150/32'
                '20.199.39.227/32'
                '20.199.39.228/32'
                '20.199.39.231/32'
                '20.199.39.232/32'
                '20.200.245.241/32'
                '20.200.245.245/32'
                '20.200.245.246/32'
                '20.200.245.247/32'
                '20.200.245.248/32'
                '20.201.28.144/32'
                '20.201.28.148/32'
                '20.201.28.149/32'
                '20.201.28.151/32'
                '20.201.28.152/32'
                '20.205.243.160/32'
                '20.205.243.164/32'
                '20.205.243.165/32'
                '20.205.243.166/32'
                '20.205.243.168/32'
                '20.207.73.82/32'
                '20.207.73.83/32'
                '20.207.73.85/32'
                '20.207.73.86/32'
                '20.207.73.88/32'
                '20.217.135.1/32'
                '20.233.83.145/32'
                '20.233.83.146/32'
                '20.233.83.147/32'
                '20.233.83.149/32'
                '20.233.83.150/32'
                '20.248.137.48/32'
                '20.248.137.49/32'
                '20.248.137.50/32'
                '20.248.137.52/32'
                '20.248.137.55/32'
                '20.26.156.215/32'
                '20.26.156.216/32'
                '20.26.156.211/32'
                '20.27.177.113/32'
                '20.27.177.114/32'
                '20.27.177.116/32'
                '20.27.177.117/32'
                '20.27.177.118/32'
                '20.29.134.17/32'
                '20.29.134.18/32'
                '20.29.134.19/32'
                '20.29.134.23/32'
                '20.29.134.24/32'
                '20.87.245.0/32'
                '20.87.245.1/32'
                '20.87.245.4/32'
                '20.87.245.6/32'
                '20.87.245.7/32'
                '4.208.26.196/32'
                '4.208.26.197/32'
                '4.208.26.198/32'
                '4.208.26.199/32'
                '4.208.26.200/32'
                '4.225.11.196/32'
                '4.237.22.32/32'
              ]
            }
          }
          {
            name: 'AllowStorageOutbound'
            properties: {
              protocol: '*'
              sourcePortRange: '*'
              destinationPortRange: '443'
              sourceAddressPrefix: '*'
              destinationAddressPrefix: 'Storage'
              access: 'Allow'
              priority: 230
              direction: 'Outbound'
              destinationAddressPrefixes: []
            }
          }
        ]
      }
    }
    

1. Obtener el objeto databaseId para tu organización

Sugerencia

Un token requerirá al menos permisos read:org para realizar una consulta exitosa.

Puedes usar la siguiente consulta de GraphQL para recuperar la organización databaseId. Usarás la organización databaseId para el valor de la variable de entorno DATABASE_ID en el paso siguiente. Para más información sobre cómo trabajar con GraphQL, consulta Formar llamados con GraphQl.

Variable de consultaDescripción
loginInicio de sesión de la cuenta de la organización, que puede identificar examinando la dirección URL de la organización, https://github.com/organizations/ORGANIZATION_LOGIN.
query(
  $login: String!
){
  organization (login: $login)
  {
    login
    databaseId
  }
}
'
Variables
{
  "login": "ORGANIZATION_LOGIN"
}

De forma alternativa, puede utilizar el siguiente comando curl para buscar su databaseId.

Shell
curl -H "Authorization: Bearer BEARER_TOKEN" -X POST \
  -d '{ "query": "query($login: String!) { organization (login: $login) { login databaseId } }" ,
        "variables": {
          "login": "ORGANIZATION_LOGIN"
        }
      }' \
https://api.github.com/graphql

2. Use un script para configurar los recursos de Azure

Use el siguiente script para configurar una subred para redes privadas de Azure. El script crea todos los recursos en el mismo grupo de recursos.

Para usar el script, rellene los valores de la variable de entorno de marcador de posición con los valores reales y ejecute el script desde un shell de Bash o Subsistema de Windows para Linux.

Nota:

  • Ejecute el siguiente script en el mismo directorio donde guardó el archivo actions-nsg-deployment.bicep.
  • Al establecer la variable de entorno YOUR_AZURE_LOCATION, use el nombre de la región. Este valor es diferente del nombre para mostrar de la región. Para ver una lista de nombres y nombres para mostrar, use az account list-locations -o table.
  • Al crear el recurso de configuración de red, se aplica un vínculo de asociación de servicio a la subred que proporcione. Este vínculo evita la eliminación accidental de la subred mientras se usa en el servicio GitHub Actions.
  • Si personaliza esta secuencia de comandos para usar recursos de red en subredes existentes, debe asegurarse de que las interfaces de red existentes (NIC) conectadas a la subred se eliminan antes de que la subred se delegue al servicio GitHub Actions. De lo contrario, el servicio no podrá aplicar el vínculo de asociación de servicio a la subred.
Bash
#!/bin/bash

# This script creates the following resources in the specified subscription:
# - Resource group
# - Network Security Group rules
# - Virtual network (vnet) and subnet
# - Network Settings with specified subnet and GitHub Organization database ID
#
# It also registers the `GitHub.Network` resource provider with the subscription,
# delegates the created subnet to the Actions service via the `GitHub.Network/NetworkSettings`
# resource type, and applies the NSG rules to the created subnet.

# stop on failure
set -e

#set environment
export AZURE_LOCATION=YOUR_AZURE_LOCATION
export SUBSCRIPTION_ID=YOUR_SUBSCRIPTION_ID
export RESOURCE_GROUP_NAME=YOUR_RESOURCE_GROUP_NAME
export VNET_NAME=YOUR_VNET_NAME
export SUBNET_NAME=YOUR_SUBNET_NAME
export NSG_NAME=YOUR_NSG_NAME
export NETWORK_SETTINGS_RESOURCE_NAME=YOUR_NETWORK_SETTINGS_RESOURCE_NAME
export DATABASE_ID=YOUR_DATABASE_ID
export API_VERSION=2024-04-02

# These are the default values. You can adjust your address and subnet prefixes.
export ADDRESS_PREFIX=10.0.0.0/16
export SUBNET_PREFIX=10.0.0.0/24

echo
echo login to Azure
. az login --output none

echo
echo set account context $SUBSCRIPTION_ID
. az account set --subscription $SUBSCRIPTION_ID

echo
echo Register resource provider GitHub.Network
. az provider register --namespace GitHub.Network

echo
echo Create resource group $RESOURCE_GROUP_NAME at $AZURE_LOCATION
. az group create --name $RESOURCE_GROUP_NAME --location $AZURE_LOCATION

echo
echo Create NSG rules deployed with 'actions-nsg-deployment.bicep' file
. az deployment group create --resource-group $RESOURCE_GROUP_NAME --template-file ./actions-nsg-deployment.bicep --parameters location=$AZURE_LOCATION nsgName=$NSG_NAME

echo
echo Create vnet $VNET_NAME and subnet $SUBNET_NAME
. az network vnet create --resource-group $RESOURCE_GROUP_NAME --name $VNET_NAME --address-prefix $ADDRESS_PREFIX --subnet-name $SUBNET_NAME --subnet-prefixes $SUBNET_PREFIX

echo
echo Delegate subnet to GitHub.Network/networkSettings and apply NSG rules
. az network vnet subnet update --resource-group $RESOURCE_GROUP_NAME --name $SUBNET_NAME --vnet-name $VNET_NAME --delegations GitHub.Network/networkSettings --network-security-group $NSG_NAME

echo
echo Create network settings resource $NETWORK_SETTINGS_RESOURCE_NAME
. az resource create --resource-group $RESOURCE_GROUP_NAME --name $NETWORK_SETTINGS_RESOURCE_NAME --resource-type GitHub.Network/networkSettings --properties "{ \"location\": \"$AZURE_LOCATION\", \"properties\" : { \"subnetId\": \"/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME\", \"businessId\": \"$DATABASE_ID\" }}" --is-full-object --output table --query "{GitHubId:tags.GitHubId, name:name}" --api-version $API_VERSION

echo
echo To clean up and delete resources run the following command:
echo az group delete --resource-group $RESOURCE_GROUP_NAME

El script devolverá la carga completa del recurso creado. El valor hash de GitHubId devuelto en la carga útil del recurso creado es el identificador de recurso de configuración de red que usará en los pasos siguientes al configurar una opción de red en GitHub.

Creación de la configuración de red para su organización en GitHub

Después de configurar los recursos de Azure, puedes utilizar una instancia de Azure Virtual Network (VNET) para redes privadas mediante la creación de una configuración de red a nivel de organización. A continuación, puede asociar esa configuración de red a grupos de ejecutores.

Una vez asociada la configuración de red a un grupo de ejecutores, todos los ejecutores de ese grupo tendrán acceso a la red virtual de Azure que se ha conectado a la configuración subyacente.

Requisitos previos

Asegúrese de que los recursos de Azure se han configurado antes de agregar una configuración de red en GitHub. Para obtener más información, consulta Configuración de redes privadas para los ejecutores hospedados en GitHub en su organización.

1. Agregar una nueva configuración de red para tu organización

  1. En la esquina superior derecha de GitHub, haz clic en la foto del perfil y luego en Your organizations.

  2. Seleccione una organización haciendo clic en ella.

  3. Debajo del nombre de la organización, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de las pestañas en el perfil de una organización. La pestaña "Configuración" se destaca en naranja oscuro.

  4. En la barra lateral de la izquierda, haz clic en Red informática alojada.

  5. Haga clic en la lista desplegable Nueva configuración de red. A continuación, haga clic en Azure red privada.

  6. Asigne un nombre a la configuración de red.

  7. Haga clic en Agregar Azure Virtual Network.

  8. En la ventana emergente, escriba el identificador de recurso de configuración de red que recuperó al configurar los recursos de Azure para redes privadas.

  9. Haga clic en Agregar Azure Virtual Network.

2. Crear un grupo de ejecutores para tu organización

Nota:

Para que el grupo de corredores sea accesible por los repositorios dentro de sus organizaciones, dichos repositorios deben tener acceso a ese grupo de corredores a nivel organizacional. Para más información, consulta Control del acceso a los ejecutores más grandes.

  1. Crea un grupo de corredores para tu organización. Para más información acerca de cómo crear un grupo de corredores, consulta Control del acceso a los ejecutores más grandes.
  2. Para elegir una directiva para el acceso al repositorio, selecciona el menú desplegable Acceso a los repositorios y haz clic en una directiva. Puedes configurar un grupo de ejecutores para que sea accesible para una lista específica de repositorios o para todos los repositorios de la organización.
  3. Al configurar el grupo de ejecutores, en "Configuraciones de red", use el menú desplegable para seleccionar la configuración de red que creó para la red virtual de Azure.
  4. Para crear el grupo y aplicar la directiva, haga clic en Crear grupo.

3. Añadir el ejecutor alojado en GitHub al grupo de corredores de la organización

Nota:

Al agregar su ejecutor alojado en GitHub a un grupo de ejecutores, seleccione el grupo de ejecutores que creó en los procedimientos anteriores.

  1. Añada el ejecutor alojado en GitHub al grupo de ejecutores. Para más información, consulta Administración de ejecutores más grandes.

4. Opcionalmente, administrar configuraciones de red

  1. En la esquina superior derecha de GitHub, haz clic en la foto del perfil y luego en Your organizations.

  2. Seleccione una organización haciendo clic en ella.

  3. Debajo del nombre de la organización, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de las pestañas en el perfil de una organización. La pestaña "Configuración" se destaca en naranja oscuro.

  4. En la barra lateral de la izquierda, haz clic en Red informática alojada.

  5. Para editar una configuración de red, a la derecha de la configuración de red, haga clic en . A continuación, haga clic en Editar configuración.

  6. Para deshabilitar una configuración de red, a la derecha de la configuración de red, haga clic en . Posteriormente, haga clic en Deshabilitar.

  7. Para eliminar una configuración de red, a la derecha de la configuración de red, haga clic en . Luego haga clic en Eliminar.

5. Opcionalmente, agregue una red de conmutación por error a una configuración de red.

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.

Antes de agregar una red de conmutación por error, asegúrese de que ha configurado los recursos de Azure (red virtual, subred, grupo de seguridad de red y recurso de configuración de red) para la subred secundaria, siguiendo los mismos procedimientos anteriores de configuración de los recursos de Azure. La subred de conmutación por error puede estar en una región de Azure diferente de la subred principal.

  1. En la esquina superior derecha de GitHub, haz clic en la foto del perfil y luego en Your organizations.

  2. Seleccione una organización haciendo clic en ella.

  3. Debajo del nombre de la organización, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de las pestañas en el perfil de una organización. La pestaña "Configuración" se destaca en naranja oscuro.

  4. En la barra lateral de la izquierda, haz clic en Red informática alojada.

  5. Haga clic en el icono de edición () situado junto a la configuración de red a la que desea agregar una red de conmutación por error. A continuación, haga clic en Editar configuración.

  6. Haga clic en Agregar red de conmutación por error.

  7. En la ventana emergente, escriba el ID del recurso de configuración de la red de la subred secundaria (de conmutación por error) de Azure.

  8. Haga clic en Agregar Azure Virtual Network.

  9. Ahora verá dos subredes enumeradas en la configuración de red: la principal y la de respaldo, debidamente etiquetadas.

6. Opcionalmente, habilite o deshabilite la red de conmutación por error.

Después de agregar una red de conmutación por error, puede habilitarla para enrutar el tráfico a través de la subred secundaria o deshabilitarla para volver a la subred principal.

  1. En la esquina superior derecha de GitHub, haz clic en la foto del perfil y luego en Your organizations.

  2. Seleccione una organización haciendo clic en ella.

  3. Debajo del nombre de la organización, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de las pestañas en el perfil de una organización. La pestaña "Configuración" se destaca en naranja oscuro.

  4. En la barra lateral de la izquierda, haz clic en Red informática alojada.

  5. Haga clic en el icono de edición () situado junto a la configuración de red. A continuación, haga clic en Editar configuración.

  6. Para cambiar a la red de conmutación por error, haga clic en Habilitar red virtual de conmutación por error. El tráfico del ejecutor se enrutará a través de la subred de respaldo.

  7. Para volver a la red principal, haga clic en Desactivar red virtual en espera. El tráfico del servicio 'runner' volverá a la subred principal.

Nota:

Si GitHub habilita la conmutación por error automáticamente durante una interrupción regional, se le notificará a través de un evento de registro de auditoría y por correo electrónico. Debe desactivar manualmente la conmutación por falla para volver a la subred principal cuando se resuelva la interrupción.

Eliminación de una subred

Al crear el recurso de configuración de red, se aplica un vínculo de asociación de servicio a la subred que proporcione. Este vínculo evita la eliminación accidental de la subred mientras se usa en el servicio GitHub Actions.

Para eliminar la subred, primero debe quitarse el vínculo de asociación de servicio. El vínculo de asociación de servicio se quita de forma segura y automática una vez se ha eliminado el recurso de configuración de red.

Para eliminar el recurso de configuración de red, primero debe eliminarse la configuración de red que la usa.

  1. En la esquina superior derecha de GitHub, haz clic en la foto del perfil y luego en Your organizations.

  2. Seleccione una organización haciendo clic en ella.

  3. Debajo del nombre de la organización, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de las pestañas en el perfil de una organización. La pestaña "Configuración" se destaca en naranja oscuro.

  4. En la barra lateral de la izquierda, haga clic en Redes de equipo hospedadas.

  5. Abra la configuración de red que usa la subred que desea eliminar.

  6. Revise la lista de grupos de ejecutores mediante la configuración de red.

  7. En la esquina superior derecha, haga clic en el botón "". A continuación, haga clic en Eliminar configuración.

  8. Para eliminar el recurso de configuración de red y quitar el vínculo de asociación de servicio, use sus propias entradas con los siguientes comandos con la CLI de Azure. Para más información, véase la documentación de la interfaz de la línea de comandos Azure (CLI).

    Bash
    az account set --subscription $SUBSCRIPTION_ID
    az resource delete -g $RESOURCE_GROUP_NAME --name $NETWORK_SETTINGS_RESOURCE_NAME --resource-type 'GitHub.Network/networkSettings' --api-version $API_VERSION
    
  9. Elimine la subred en Azure. Para más información, consulta Eliminación de una subred en Microsoft Learn.