GitHub 的 CICD 服务产品 GitHub Actions现在支持使用 Open Identity Connect 凭证对 Hashicorp Vault、AWS、Azure 和 GCP 等云提供商进行身份验证,而无需使用长期凭证或密码。
云中的现代开发通常需要针对云提供商对持续集成和持续部署 (CICD) 服务器进行身份验证,以便对已配置的基础架构进行更改。从历史上看,这是通过在云提供商中创建一个身份来实现的,CICD 服务器可以利用一组长期存在的手动设置的凭证来承担这个身份。鉴于这些凭据的用途,它们的妥协始终会带来重大的业务风险。
OpenID Connect 身份验证协议是一种可互操作的机制,用于提供有关用户身份的可验证信息。鉴于用户的身份提供者是验证方能够信任的身份提供者,相关用户数据可以作为Json Web 令牌 (JWT)中的声明提供,称为ID 令牌。
使用 GitHub Actions,第一步是在云提供商的身份和访问管理配置中将 GitHub 注册为外部身份源。在执行工作流时,管道随后可以访问一个 ID 令牌,该 ID 令牌的范围限定为管道的唯一运行。令牌包括令牌的期望受众和其持有者的标识符以及其他元数据。
然后,云提供商可以使用此信息为任何后续操作颁发短期凭证,例如访问令牌。GitHub Actions 目前通过Hashicorp Vault、亚马逊网络服务、Azure和谷歌云平台支持这一点。
自发布以来,对新功能的接受在很大程度上是积极的,Hashicorp 的创始人Mitchell Hashimoto发推文说:
随着最近发现 GitHub Actions 每次运行都会创建一个 OIDC 身份,可以将 Vault 配置为允许使用 Actions 身份进行身份验证,然后使用它来访问...任何东西。需要进行一些清理,但这是非常有希望的!
尽管受到热烈欢迎,但采用速度似乎比预期的要慢, WhiteDuck 的 DevOps 咨询和运营主管Nico Meisenzahl在推特上写道:
在GitHub Actions 中使用云提供商和#Kubernetes 进行OIDC 身份验证已经是一件大事了吗?我看到很多优点,但已经采用它的人并不多。
在 GitHub 于 2021 年底发布该功能后,其他 CICD 提供商已在其产品中添加了类似的集成。2022 年底发布的 GitLab 15.7 版包括对访问 Hashicorp Vault、AWS、Azure 和 GCP 的支持,而 Circle CI在 2023 年 2 月宣布支持 GCP 和 AWS 集成。
GitHub Actions OIDC 云供应商登录适用于所有计划,无需额外费用。关于作者,Nsikan 在 Field Energy 担任工程经理。云架构、平台服务和有效团队的发展是他的主要工作兴趣。他常驻伦敦。