GitHub's Hosted Compute Networking allows you to manage private networking for GitHub-hosted products. This includes:
- Secure access to internal resources
- Controlled outbound network access
- Monitoring network traffic for development and CI/CD infrastructure
It is especially useful for organizations that require secure, compliant, and tightly controlled networking environments for GitHub-hosted runners.
Use Cases in a University Environment
1. Secure Access to Internal Resources
Scenario: The university's IT department needs to ensure that only authorized CI/CD workflows can access internal databases and services.
Solution: Configure private networking so GitHub-hosted runners can securely connect to internal resources within an Azure Virtual Network (VNET), keeping sensitive data protected.
2. Controlled Outbound Network Access
Scenario: A research project requires controlled access to external APIs and services.
Solution: Use network configurations to restrict outbound access from GitHub-hosted runners to only approved external endpoints, enhancing security and compliance.
Default Settings & Restrictions
- 🔒 Disabled by Default: Private networking is not enabled by default for GitHub-hosted products.
- 🏢 Organization/Enterprise Level: Network configurations apply across all repositories within the organization or enterprise using GitHub-hosted runners.
- ✅ Enable by Request: Activation requires a formal request to the IT department or designated administrator to ensure secure and approved usage.
Step-by-step: How to Start Using GitHub Hosted Compute Networking
1. Submit a Request
- Contact your IT department or designated administrator.
- Provide:
- Purpose of using private networking
- Required network configuration details
2. Configure Azure Resources
Azure Virtual Network (VNET)
- Create a secure and isolated network environment for GitHub-hosted runners.
Subnets & Network Security Groups (NSGs)
- Segment the network using subnets.
- Apply NSGs to control inbound/outbound traffic.
Network Interface Cards (NICs)
- Each GitHub-hosted runner deploys a NIC into your Azure VNET.
- Enables communication with internet, Azure, and on-prem resources.
Private Endpoints (Optional)
- Use private endpoints to securely access specific Azure services.
3. Create a Network Configuration in GitHub
Once Azure resources are ready, define the network configuration in GitHub.
name: Private Network Configuration
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Configure Azure VNET
run: az network vnet create --name MyVnet --resource-group MyResourceGroup --location eastus --address-prefix 10.0.0.0/16
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- run: npm install
- run: npm test
4. Monitor and Maintain
- Regularly monitor network configurations and logs.
- Update configurations as needed to reflect changes in project scope or infrastructure.