GitHub 호스트 실행기를 위한 Azure 비공개 네트워킹 정보
Azure VNET에서 GitHub 호스트형 실행기를 사용할 수 있습니다. 이렇게 하면 실행기 네트워킹 정책의 모든 권한을 제공하면서 CI/CD의 GitHub관리 인프라를 사용할 수 있습니다. Azure VNET에 대한 자세한 내용은 Azure 문서의 Azure Virtual Network란?을 참조하세요.
여러 VNET 서브넷을 GitHub에 연결할 수 있으며, 실행기 그룹을 통해 실행기의 프라이빗 리소스 액세스를 관리할 수 있습니다. 더 큰 실행기 액세스 제어에서 러너 그룹에 대한 자세한 내용을 확인하세요.
Azure VNET 내의 GitHub호스팅 러너를 사용하면 다음 작업을 수행할 수 있습니다.
- 인터넷 포트를 열지 않고 실행기를 Azure VNET 내의 리소스에 비공개로 연결하며, 여기에는 Azure VNET에서 액세스할 수 있는 온-프레미스 리소스도 포함됩니다.
- 아웃바운드 네트워크 정책을 완전히 제어하여 GitHub호스팅 실행기가 액세스하거나 연결할 수 있는 대상을 제한합니다.
- GitHub 호스팅 러너의 네트워크 로그를 모니터링하고, 러너를 오가는 모든 연결을 확인하십시오.
Azure VNET에서의 더 큰 러너(실행기) 사용에 대한 정보
Azure VNET에서는 2-64 vCPU Ubuntu 및 Windows 실행기가 지원됩니다. 이러한 실행기 유형에 대한 자세한 내용은 더 큰 주자들을(를) 참조하세요.
GitHub-호스트형 실행기용 개인 네트워킹은 대형 실행기에 고정 IP 주소를 지원하지 않습니다. 대형 러너의 기본 설정인 동적 IP 주소를 사용해야 합니다. 대규모 러너의 네트워킹에 관한 자세한 내용은 더 큰 주자들을(를) 참조하세요.
네트워크 통신 정보
GitHub 네트워크와 사용자의 VNET 간 통신을 원활하게 하기 위해 GitHub-호스팅된 러너의 네트워크 인터페이스 카드(NIC)가 Azure VNET에 배포됩니다. 실행기는 항상 서브넷과 동일한 Azure 지역에 배포됩니다.
NIC는 VNET GitHub 내에 있으므로 인바운드 연결을 차단할 수 없습니다. 기본적으로 Azure 가상 머신은 동일한 VNET의 인바운드 연결을 허용합니다. 자세한 내용은 Microsoft Learn의 AllowVNetInBound를 참조하세요. 실행기로 들어오는 모든 수신 연결을 명시적으로 차단하는 것이 좋습니다.
GitHub 는 이러한 컴퓨터에 대한 인바운드 연결이 필요하지 않습니다.
NIC를 사용하면 Azure VM(가상 머신)에서 인터넷, Azure 및 온-프레미스 리소스와 통신할 수 있습니다. 이렇게 하면 모든 통신이 네트워크 경계 내에서 비공개로 유지되고 VNET에 적용된 네트워킹 정책도 실행기에 적용됩니다. 네트워크 인터페이스를 관리하는 방법에 대한 자세한 내용은 Microsoft Learn의 네트워크 인터페이스 설정 변경을 참조하세요.
참고
곧 데이터 변수들.product.prodname_actions %} 서비스에서 만든 NIC는 Azure 구독에 더 이상 표시되지 않을 것입니다. 앞으로 네트워크 인터페이스 카드(NIC)는 서비스 구독에 프로비전되고 서브넷으로부터 IP 주소가 할당됩니다.

- GitHub Actions 워크플로가 트리거됩니다.
- GitHub Actions 서비스는 러너를 생성합니다.
- 실행기 서비스는 GitHub에서 호스팅되는 실행기의 네트워크 인터페이스 카드(NIC)를 Azure VNET에 배포합니다.
- 실행기 에이전트가 워크플로 작업을 가져옵니다. GitHub Actions 서비스가 작업을 대기열에 넣습니다.
- 실행기는 로그를 GitHub Actions 서비스로 다시 보냅니다.
- NIC는 온-프레미스 리소스에 액세스합니다.
지원되는 지역 정보
GitHub는 연결된 서브넷과 동일한 Azure 지역에 실행기를 배포합니다. 이 때문에 서브넷은 지원되는 지역 중 하나에 있어야 합니다. GitHub Actions 서비스는 Azure가 제공하는 모든 지역 중 일부만 지원하며, 이를 통해 GitHub Actions 서비스와 사용자의 서브넷 간 통신이 원활해집니다.
참고
데이터의 저장 위치에서 GHE.com을 사용할 경우, 지원되는 지역이 다릅니다. GHE.com의 네트워크 세부 정보을(를) 참조하세요.
에서 지원 GitHub.com되는 지역은 다음과 같습니다.
AustraliaEastBrazilSouthCanadaCentralCanadaEastCentralUsEastAsiaEastUsEastUs2FranceCentralGermanyWestCentralJapanWestKoreaCentralNorthCentralUsNorthEuropeNorwayEastSouthCentralUsSoutheastAsiaSouthIndiaSwedenCentralSwitzerlandNorthUkSouthUkWestWestUsWestUs2WestUs3
Azure 프라이빗 네트워킹은 다음 지역에서 GPU 실행기를 지원합니다.
EastUsNorthCentralUsSouthCentralUsWestUs
Azure 개인 네트워킹은 다음 지역에서 arm64 실행기를 지원합니다.
CentralUsEastUsEastUs2NorthCentralUsSouthCentralUsWestUsWestUs2WestUs3
곧 새 지역에 대한 지원을 요청하는 프로세스를 시작할 예정입니다. 또한 글로벌 가상 네트워크 피어링을 사용하여 Azure 지역 간에 가상 네트워크를 연결할 수도 있습니다. 자세한 내용은 Azure 설명서의 가상 네트워크 피어링을 참조하세요.
GitHub Actions 서비스 권한 정보
NIC를 성공적으로 배포하고 서브넷에 NIC를 조인하기 위해 GitHub Actions 서비스는 Azure 구독에서 다음 Azure RBAC(역할 기반 액세스 제어) 권한을 유지합니다. Azure 리소스의 세분화된 액세스 관리에 대한 자세한 내용은 Azure 설명서에서 Azure RBAC를 참조하세요.
GitHub.Network/operations/readGitHub.Network/networkSettings/readGitHub.Network/networkSettings/writeGitHub.Network/networkSettings/deleteGitHub.Network/RegisteredSubscriptions/readMicrosoft.Network/locations/operations/readMicrosoft.Network/locations/operationResults/readMicrosoft.Network/locations/usages/readMicrosoft.Network/networkInterfaces/readMicrosoft.Network/networkInterfaces/writeMicrosoft.Network/networkInterfaces/deleteMicrosoft.Network/networkInterfaces/join/actionMicrosoft.Network/networkSecurityGroups/join/actionMicrosoft.Network/networkSecurityGroups/readMicrosoft.Network/publicIpAddresses/readMicrosoft.Network/publicIpAddresses/writeMicrosoft.Network/publicIPAddresses/join/actionMicrosoft.Network/routeTables/join/actionMicrosoft.Network/virtualNetworks/readMicrosoft.Network/virtualNetworks/subnets/join/actionMicrosoft.Network/virtualNetworks/subnets/readMicrosoft.Network/virtualNetworks/subnets/writeMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/deleteMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/readMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/writeMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/details/readMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/actionMicrosoft.Resources/subscriptions/resourceGroups/readMicrosoft.Resources/subscriptions/resourcegroups/deployments/readMicrosoft.Resources/subscriptions/resourcegroups/deployments/writeMicrosoft.Resources/subscriptions/resourcegroups/deployments/operations/readMicrosoft.Resources/deployments/readMicrosoft.Resources/deployments/writeMicrosoft.Resources/deployments/operationStatuses/read
다음 권한은 Azure 테넌트에 있는 두 엔터프라이즈 애플리케이션에 있습니다. Azure 프라이빗 네트워킹을 구성한 후 Azure 테넌트에 엔터프라이즈 애플리케이션이 표시됩니다.
GitHub CPS Network ServiceID:85c49807-809d-4249-86e7-192762525474GitHub Actions APIID:4435c199-c3da-46b9-a61d-76de3f2c9f82
VNET의 네트워크 정책 사용
GitHub 호스트 실행기 NIC가 Azure VNET에 배포되므로 VNET에 적용된 네트워킹 정책도 실행기에 적용됩니다.
예를 들어 VNET이 Azure ExpressRoute를 사용하여 온-프레미스 리소스(예: Artifactory)에 대한 액세스를 제공하도록 구성되거나 다른 클라우드 기반 리소스에 대한 액세스를 제공하기 위해 VPN 터널에 연결된 경우, 해당 액세스 정책도 실행기에도 적용됩니다. 또한 VNET의 NSG(네트워크 보안 그룹)에 적용되는 모든 아웃바운드 규칙도 적용되므로 실행기에서 아웃바운드 액세스를 제어할 수 있습니다.
VNET에 대한 네트워크 로그 모니터링을 사용하도록 설정한 경우 실행기 네트워크 트래픽을 모니터링할 수도 있습니다.
GitHub 호스팅 실행기는 네트워크에서 사용 중인 아웃바운드 제어를 사용합니다. 네트워크에서 Azure의 기본 아웃바운드 액세스를 사용하는 경우 IP는 예측할 수 없으며 GitHub IP 허용 목록에 추가할 수 없습니다. 안정적인 아웃바운드 IP 사용에 대한 권장 사항은 Azure 설명서의 기본 아웃바운드 액세스를 참조하세요.
VNET 장애 조치 정보
참고
VNET 장애 조치(failover)는 공개 미리 보기 상태이며 변경될 수 있습니다.
네트워크 구성에 대한 장애 조치(failover) 네트워크를 구성할 수 있습니다. 장애 조치(failover) 네트워크는 보조 Azure Virtual Network 서브넷으로, 주 서브넷과 다른 Azure 리전에 존재할 수 있습니다. 지역 중단이나 기타 장애로 인해 주 서브넷을 사용할 수 없게 되면, 장애 조치 네트워크를 활성화하여 러너 트래픽을 보조 서브넷을 통해 라우팅함으로써 GitHub Actions 워크플로의 연속성을 유지할 수 있습니다.
VNET 장애 조치(failover)에 대한 핵심 사항들:
- 장애 조치(failover) 서브넷은 주 서브넷과 다른 Azure 지역에 상주할 수 있습니다.
- 기본 서브넷과 장애 조치(failover) 서브넷 간 전환은 수동 프로세스입니다. 사용자가 원하는 대로 장애 조치(failover) 네트워크를 사용 또는 미사용으로 설정할 수 있습니다.
- 장애 조치(failover)를 사용하려면 먼저 기본 서브넷과 장애 조치(failover) 서브넷을 모두 필요한 Azure 리소스(VNET/서브넷, 네트워크 설정 등)로 구성해야 합니다.
- 장애 조치(failover) 서브넷은 지원되는 지역에 있어야 합니다.
장애 조치(failover) 네트워크 구성에 대한 자세한 내용은 조직 내 GitHub 호스팅 러너에 대한 프라이빗 네트워킹 구성하기을 참조하세요.
GitHub 호스트 실행기를 Azure VNET과 함께 사용
Azure VNET에서 GitHub호스팅된 실행기를 사용하려면 Azure 리소스를 구성한 다음 GitHub에서 네트워킹 구성을 생성해야 합니다.
기본적으로 엔터프라이즈의 조직은 새 네트워크 구성을 만들 수 없으며 엔터프라이즈 수준 네트워크 구성만 상속할 수 있습니다. 엔터프라이즈 소유자는 엔터프라이즈의 조직이 엔터프라이즈와 독립적인 네트워크 구성을 만들 수 있도록 하는 정책을 설정할 수 있습니다. 자세한 내용은 GitHub에서 호스팅되는 러너를 위한 엔터프라이즈 내 프라이빗 네트워킹 구성을(를) 참조하세요.
Enterprise 수준에서 Azure 개인 네트워킹을 구성하는 절차는 GitHub에서 호스팅되는 러너를 위한 엔터프라이즈 내 프라이빗 네트워킹 구성을(를) 참조하세요.
조직 수준에서 Azure 개인 네트워킹을 구성하는 절차는 조직 내 GitHub 호스팅 러너에 대한 프라이빗 네트워킹 구성하기을(를) 참조하세요.