关于 GitHub 托管的运行器网络
默认情况下,GitHub 托管的运行器有权访问公共 Internet。 但是,你可能还希望这些运行器访问专用网络上的资源,例如包注册表、机密管理器或其他本地服务。
GitHub 托管的运行器在所有 GitHub 客户之间共享,因此,你需要一种方法,在运行器运行你的工作流时,将你的专用网络仅连接到它们。 可以采用几种不同的方法来配置此访问,每个方法都有不同的优缺点。
将 API 网关与 OIDC 配合使用
借助 GitHub Actions,可以使用 OpenID Connect (OIDC) 令牌对 GitHub Actions 之外的工作流进行身份验证。 有关详细信息,请参阅“将 API 网关与 OIDC 配合使用”。
使用 WireGuard 创建网络覆盖
如果不想为 API 网关维护单独的基础结构,可以通过在专用网络的运行器和服务中运行 WireGuard,在这两者之间创建覆盖网络。 有关详细信息,请参阅“使用 WireGuard 创建网络覆盖”。
使用 Azure 虚拟网络 (VNet)
注意:
- 将 GitHub 托管的大型运行器与 Azure 虚拟网络 (VNET) 一起使用处于专用 beta 版本中,可能会有更改。 此功能可能并非对所有用户都可用。
- Azure VNET 仅支持较大的运行器。 有关较大型运行器的详细信息,请参阅“关于较大的运行器”。
如果使用 Azure 和 GitHub Enterprise Cloud,则可以在 Azure VNET 中创建 GitHub 托管运行器。 这样就可以利用 CI/CD 的 GitHub 托管基础结构,同时取得对运行器网络策略的完全控制。 有关 Azure VNET 的详细信息,请参阅 Azure 文档中的什么是 Azure 虚拟网络?。 有关详细信息,请参阅“About using GitHub-hosted runners in your Azure Virtual Network”。