О частных сетях Azure для GitHub-hosted runners
Вы можете использовать GitHubразмещенных в виртуальной сети Azure. Это позволяет использовать GitHubуправляемой инфраструктурой для CI/CD, обеспечивая полный контроль над сетевыми политиками запуска. Дополнительные сведения о виртуальной сети Azure см. в статье "Что такое Azure виртуальная сеть?" в документации По Azure.
Вы можете подключить несколько подсетей виртуальной сети к GitHub частным ресурсам и управлять доступом к частным ресурсам для пользователей с помощью групп runner. Дополнительные сведения о группах runner см. в разделе Управление доступом к крупным средствам выполнения.
Использование GitHubмодулей runner с размещением в Azure виртуальной сети позволяет выполнять следующие действия.
- При частном подключении средства выполнения к ресурсам в виртуальной сети Azure без открытия интернет-портов, включая локальные ресурсы, доступные из виртуальной сети Azure.
- GitHubОграничить доступ или подключение к размещенным запускам с помощью полного контроля над политиками исходящей сети.
- Отслеживайте сетевые журналы для GitHubмодулей runner с размещением и просматривайте все подключения к средству выполнения и из нее.
О работе с более крупными раннерами с Azure VNET
С виртуальной сетью Azure поддерживаются 2-64 виртуальных ЦП Ubuntu и Windows. Дополнительные сведения об этих типах runner см. в разделе Более крупные бегуны.
Частная сеть для GitHubразмещенных в среде runners не поддерживает статические IP-адреса для более крупных модулей выполнения. Необходимо использовать динамические IP-адреса, которые являются конфигурацией по умолчанию для более крупных модулей выполнения. Дополнительные сведения о сети для крупных средств выполнения см. в разделе Более крупные бегуны.
Сведения о сетевом обмене данными
Для облегчения коммуникации между GitHub сетями и вашей VNET GitHubв Azure VNET развёртается сетевая карта интерфейса -hosted runner. Runner всегда развернут в том же регионе Azure, что и ваша подсеть.
Поскольку сетевая карта находится внутри вашей VNET, GitHub не может блокировать входящие соединения. По умолчанию виртуальные машины Azure будут принимать входящие подключения из той же виртуальной сети. Дополнительные сведения см AllowVNetInBound . в Microsoft Learn. Рекомендуется явно блокировать все входящие подключения к средствам выполнения.
GitHub никогда не потребуется входящие подключения к этим машинам.
Сетевой адаптер позволяет виртуальной машине Azure взаимодействовать с Интернетом, Azure и локальными ресурсами. Таким образом, все обмен данными остается закрытым в пределах сети, а политики сети, применяемые к виртуальной сети, также применяются к средству выполнения. Дополнительные сведения об управлении сетевым интерфейсом см. в разделе "Изменение параметров сетевого интерфейса" в Microsoft Learn.
Примечание.
Вскоре NIC, созданные сервисом GitHub Actions, больше не будут отображаться в ваших подписках Azure. В дальнейшем сетевые карты будут предоставляться в подписке на сервис и получать IP-адреса из вашей подсети.

- Запускается GitHub Actions рабочий процесс.
- Сервис GitHub Actions создаёт бегуна.
- Сервис запускает GitHubсетевую интерфейсную карту (NIC) -hosted runner в вашу Azure VNET.
- Агент runner выбирает задание рабочего процесса. Сервис ставит GitHub Actions задание в очередь.
- Бегун отправляет логи обратно на GitHub Actions сервис.
- Сетевой адаптер обращается к локальным ресурсам.
Сведения о поддерживаемых регионах
GitHubРазмещает ваши раннеры в том же регионе Azure, что и подсеть, к которой вы их подключаете. Поэтому ваша подсеть должна находиться в одной из поддерживаемых областей. GitHub Actions Сервис поддерживает подмножество всех регионов, которые предоставляет Azure, что облегчает коммуникацию между GitHub Actions сервисом и вашей подсетью.
Примечание.
Если вы используете Место расположения данных на GHE.com, поддерживаемые регионы разные. См . раздел AUTOTITLE.
Следующие регионы поддерживаются на GitHub.com.
AustraliaEastBrazilSouthCanadaCentralCanadaEastCentralUsEastAsiaEastUsEastUs2FranceCentralGermanyWestCentralJapanWestKoreaCentralNorthCentralUsNorthEuropeNorwayEastSouthCentralUsSoutheastAsiaSouthIndiaSwedenCentralSwitzerlandNorthUkSouthUkWestWestUsWestUs2WestUs3
Частная сеть Azure поддерживает запуски GPU в следующих регионах.
EastUsNorthCentralUsSouthCentralUsWestUs
Частная сеть Azure поддерживает запуски Arm64 в следующих регионах.
CentralUsEastUsEastUs2NorthCentralUsSouthCentralUsWestUsWestUs2WestUs3
Вскоре мы запустим процесс запроса поддержки для новых регионов. Для подключения виртуальных сетей между регионами Azure также можно использовать пиринг глобальной виртуальной сети. Дополнительные сведения см. в документации по Azure.
О GitHub Actions разрешениях на сервис
Чтобы успешно развернуть сетевой адаптер и присоединить сетевой адаптер к подсети, служба GitHub Actions поддерживает следующие разрешения управления доступом на основе ролей 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 Serviceидентификатор:85c49807-809d-4249-86e7-192762525474GitHub Actions APIидентификатор:4435c199-c3da-46b9-a61d-76de3f2c9f82
Использование политик сети виртуальной сети
Так как сетевая карта runner, размещенная на основе GitHub, развертывается в виртуальной сети Azure, политики сети, применяемые к виртуальной сети, также применяются к средству выполнения.
Например, если виртуальная сеть настроена с помощью Azure ExpressRoute для предоставления доступа к локальным ресурсам (например, Artifactory) или подключена к VPN-туннелю для предоставления доступа к другим облачным ресурсам, эти политики доступа также применяются к модулям выполнения. Кроме того, применяются все правила исходящего трафика, применяемые к группе безопасности сети (NSG) виртуальной сети, что позволяет управлять исходящим доступом для пользователей.
Если вы включили мониторинг сетевых журналов для виртуальной сети, вы также можете отслеживать сетевой трафик для выполнения.
GitHubразмещенные в среде runners используют любой исходящий контроль, используемый вашей сетью. Если сеть использует исходящий доступ Azure по умолчанию, IP-адреса не прогнозируются и не могут быть добавлены в список разрешений IP-адресов GitHub. Рекомендации по использованию стабильного исходящего IP-адреса см. в документации Azure по умолчанию.
О резервировании VNET
Примечание.
Отказное переключение VNET включено Публичный предварительный просмотр и может измениться.
Вы можете настроить резервную сеть для вашей сетевой конфигурации. Резервная сеть — это вторичная подсеть Azure Virtual Network, которая может находиться в другом регионе Azure, отличной от вашей основной подсети. Если ваша основная подсеть станет недоступна из-за регионального сбоя или других сбоев, вы можете включить резервную сеть для маршрутизации трафика раннера через вторичную подсеть, сохраняя непрерывность ваших GitHub Actions рабочих процессов.
Ключевые моменты о отказе VNET:
- Резервная подсеть может находиться в другом регионе Azure, отличной от основной подсети.
- Переключение между основной и резервной подсетью — это ручной процесс. Вы включаете или отключаете резервную сеть по своему усмотрению.
- И основная, и резервная подсеть должны быть настроены с необходимыми ресурсами Azure (VNET/подсеть, сетевые настройки и т.д.), прежде чем использовать резервный режим.
- Резервная подсеть должна находиться в поддерживаемой области.
Для получения дополнительной информации о настройке резервной сети см. Настройка частных сетей для пользователей, размещённых на GitHub, в вашем предприятии.
Управление политиками конфигурации сети для организаций в организации
Вы можете предоставить владельцам организаций в вашем предприятии возможность настраивать и поддерживать сетевые конфигурации на уровне организации для GitHub-hosted runners.
Дополнительные сведения см. в разделе Настройка частных сетей для пользователей, размещённых на GitHub, в вашем предприятии.
Использование GitHub-hosted runners с Azure VNET
Чтобы использовать GitHubуправляемые средства выполнения с виртуальной сетью Azure, необходимо настроить Azure ресурсы, а затем создать сетевую конфигурацию в GitHub.
По умолчанию организации в организации не могут создавать новые конфигурации сети и наследовать только конфигурации сети корпоративного уровня. Владельцы предприятия могут задать политику, которая позволяет организациям в организации создавать конфигурации сети, которые не зависят от предприятия. Дополнительные сведения см. в разделе Настройка частных сетей для пользователей, размещённых на GitHub, в вашем предприятии.
Процедуры настройки частных сетей Azure на корпоративном уровне см. в разделе Настройка частных сетей для пользователей, размещённых на GitHub, в вашем предприятии.
Процедуры настройки частных сетей Azure на уровне организации см. в разделе Настройка частных сетей для пользователей, размещённых на GitHub, в вашей организации.