使用带有 OIDC 的 API 网关
使用 GitHub Actions,您可以使用 OpenID Connect (OIDC) 令牌来验证 GitHub Actions 外部的 Workflow。例如,您可以在私有网络边缘运行一个 API 网关,该网关使用 OIDC 令牌验证传入请求,然后代表您的工作流在私有网络中发出 API 请求。
下图概述了此解决方案的架构
重要的是,您不仅需要验证 OIDC 令牌是否来自 GitHub Actions,还需要验证它是否特别来自您预期的工作流,以防止其他 GitHub Actions 用户访问您的私有网络中的服务。您可以使用 OIDC 声明来创建这些条件。有关详细信息,请参阅“关于使用 OpenID Connect 进行安全加固”。
这种方法的主要缺点是您必须实现 API 网关来代表您发出请求,并且您必须在网络边缘运行网关。
以下优点适用。
- 您无需配置任何防火墙或修改私有网络的路由。
- API 网关是无状态的,可以水平扩展以处理高可用性和高吞吐量。
更多信息,请参见github/actions-oidc-gateway 代码库中的 API 网关参考实现。此实现需要根据您的用例进行自定义,不能直接运行。更多信息,请参见“关于使用 OpenID Connect 加强安全性”。