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