Skip to main content

Сведения о частных сетях Azure для размещенных в GitHub runners в организации

Вы можете создать конфигурацию частной сети для организации, чтобы использовать GitHubразмещенных в azure виртуальная сеть (виртуальных сетях).

Кто может использовать эту функцию?

Владельцы организации для организаций в организации могут настроить частную сеть Azure для GitHubразмещенных на уровне организации средств выполнения.

Сведения о частной сети Azure для GitHubразмещенных в runners

Вы можете использовать GitHubразмещенных в виртуальной сети Azure. Это позволяет использовать GitHubуправляемой инфраструктурой для CI/CD, обеспечивая полный контроль над сетевыми политиками запуска. Дополнительные сведения о виртуальной сети Azure см. в статье "Что такое Azure виртуальная сеть?" в документации По Azure.

Вы можете подключить несколько подсетей виртуальной сети к GitHub и управлять доступом к частным ресурсам для пользователей с помощью групп runner. Дополнительные сведения о группах runner см. в разделе "Управление доступом к крупным средствам выполнения".

Использование GitHubразмещенных в виртуальной сети Azure средств выполнения позволяет выполнять следующие действия.

  • При частном подключении средства выполнения к ресурсам в виртуальной сети Azure без открытия интернет-портов, включая локальные ресурсы, доступные из виртуальной сети Azure.
  • Ограничьте доступ или подключение пользователей с помощью GitHub, размещенных в среде runner, с полным контролем над политиками исходящей сети.
  • Отслеживайте сетевые журналы для GitHubразмещенных в среде runner и просматривайте все подключения к средству выполнения и из нее.

Сведения об использовании более крупных модулей выполнения с виртуальной сетью Azure

С виртуальной сетью Azure поддерживаются 2-64 виртуальных ЦП Ubuntu и Windows. Дополнительные сведения об этих типах runner см. в разделе "О более крупных бегунах".

Частная сеть для GitHubразмещенных в среде runners не поддерживает статические IP-адреса для более крупных модулей выполнения. Необходимо использовать динамические IP-адреса, которые являются конфигурацией по умолчанию для более крупных модулей выполнения. Дополнительные сведения о сети для крупных runners см. в разделе "О более крупных бегунах".

Сведения о сетевом обмене данными

Чтобы упростить обмен данными между сетями GitHub и виртуальной сетью, развертывается сетевой интерфейс карта (сетевой адаптер) в виртуальной сети Azure с помощью .

Так как сетевой адаптер находится в виртуальной сети, GitHub не может блокировать входящие подключения. По умолчанию виртуальные машины Azure будут принимать входящие подключения из той же виртуальной сети. Дополнительные сведения см AllowVNetInBound . в Microsoft Learn. Рекомендуется явно блокировать все входящие подключения к средствам выполнения. GitHub никогда не требует входящих подключений к этим компьютерам.

Сетевой адаптер позволяет виртуальной машине Azure взаимодействовать с Интернетом, Azure и локальными ресурсами. Таким образом, все обмен данными остается закрытым в пределах сети, а политики сети, применяемые к виртуальной сети, также применяются к средству выполнения. Дополнительные сведения об управлении сетевым интерфейсом см. в разделе "Изменение параметров сетевого интерфейса" в Microsoft Learn.

Note

Несколько сетевых адаптеров могут отображаться для одного задания в подписке, так как служба GitHub Actions переопределила ресурсы для выполнения заданий. После простоя средство запуска GitHub Actions автоматически отменяет подготовку ресурса и удаляет соответствующий сетевой адаптер.

Схема архитектуры сетевого взаимодействия между сетями GitHub и частными сетями. На схеме описывается каждый шаг при подключении размещенных в GitHub runners к виртуальной сети Azure. Каждый шаг нумерован и числа соответствуют нумерованным описаниям шага, указанного ниже схемы.

  1. Активируется рабочий процесс GitHub Actions .
  2. Служба GitHub Actions создает средство выполнения.
  3. Служба runner развертывает сетевой интерфейс карта сетевого интерфейса карта (сетевой адаптер) виртуальной сети Azure в GitHub.
  4. Агент runner выбирает задание рабочего процесса. Служба GitHub Actions очереди задания.
  5. Средство выполнения отправляет журналы обратно в службу GitHub Actions .
  6. Сетевой адаптер обращается к локальным ресурсам.

Сведения о поддерживаемых регионах

Служба GitHub Actions поддерживает подмножество всех регионов, которые предоставляет Azure. Чтобы упростить взаимодействие между службой GitHub Actions и подсетью, подсеть должна находиться в одном из поддерживаемых регионов.

Note

Если вы используете Место расположения данных для GHE.com, поддерживаемые регионы отличаются. См. раздел "Сведения о сети для GHE.com".

Следующие регионы поддерживаются в GitHub.com.

  • EastUs
  • EastUs2
  • WestUs2
  • WestUs3
  • CentralUs
  • NorthCentralUs
  • AustraliaEast
  • JapanEast
  • FranceCentral
  • GermanyWestCentral
  • NorthEurope
  • NorwayEast
  • SwedenCentral
  • SwitzerlandNorth
  • UkSouth
  • SoutheastAsia
  • KoreaCentral

Частная сеть Azure поддерживает запуски GPU в следующих регионах.

  • EastUs
  • WestUs
  • NorthCentralUs

Частная сеть Azure поддерживает запуски Arm64 в следующих регионах.

  • EastUs
  • EastUs2
  • WestUs2
  • WestUs3
  • NorthCentralUs

Если нужный регион не поддерживается, отправьте запрос на доступность нового региона в этой форме GitHub. Для подключения виртуальных сетей между регионами Azure также можно использовать пиринг глобальной виртуальной сети. Дополнительные сведения см. в документации по Azure.

Сведения о разрешениях службы GitHub Actions

Чтобы успешно развернуть сетевой адаптер и присоединить сетевой адаптер к подсети, служба GitHub Actions поддерживает следующие разрешения управления доступом на основе ролей Azure (RBAC) в подписке Azure. Дополнительные сведения об точном управлении доступом к ресурсам Azure см . в документации по Azure RBAC .

  • 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

Следующие разрешения будут представлены в двух корпоративных приложениях в клиенте Azure. После настройки частной сети Azure вы увидите корпоративные приложения клиента Azure.

  • GitHub CPS Network Service идентификатор: 85c49807-809d-4249-86e7-192762525474
  • GitHub Actions API идентификатор: 4435c199-c3da-46b9-a61d-76de3f2c9f82

Использование политик сети виртуальной сети

Так как сетевая карта runner, размещенная на основе GitHub, развертывается в виртуальной сети Azure, политики сети, применяемые к виртуальной сети, также применяются к средству выполнения.

Например, если виртуальная сеть настроена с помощью Azure ExpressRoute для предоставления доступа к локальным ресурсам (например, Artifactory) или подключена к VPN-туннелю для предоставления доступа к другим облачным ресурсам, эти политики доступа также применяются к модулям выполнения. Кроме того, применяются все правила исходящего трафика, применяемые к группе безопасности сети (NSG) виртуальной сети, что позволяет управлять исходящим доступом для пользователей.

Если вы включили мониторинг сетевых журналов для виртуальной сети, вы также можете отслеживать сетевой трафик для выполнения.

GitHubразмещенные в среде runners используют любой исходящий контроль, используемый вашей сетью. Если сеть использует исходящий доступ Azure по умолчанию, IP-адреса не прогнозируются и не могут быть добавлены в список разрешений IP-адресов GitHub. Рекомендации по использованию стабильного исходящего IP-адреса см. в документации Azure по умолчанию.

Использование командлетов GitHub, размещенных в runners с виртуальной сетью Azure

Чтобы использовать GitHubразмещенных в среде runners с виртуальной сетью Azure, необходимо настроить ресурсы Azure, а затем создать сетевую конфигурацию в GitHub.

По умолчанию организации в организации не могут создавать новые конфигурации сети и наследовать только конфигурации сети корпоративного уровня. Владельцы предприятия могут задать политику, которая позволяет организациям в организации создавать конфигурации сети, которые не зависят от предприятия. Дополнительные сведения см. в разделе Настройка частной сети для размещенных на сайте GitHub средств выполнения в вашей организации.

Процедуры настройки частных сетей Azure на корпоративном уровне см. в разделе "Настройка частной сети для размещенных на сайте GitHub средств выполнения в вашей организации".

Процедуры настройки частных сетей Azure на уровне организации см. в разделе "Настройка частной сети для размещенных в GitHub runners в организации".