GitHub Actions 支持 OpenID Connect 无密码认证
GitHub 的 CI/CD 服务 GitHub Actions 现在支持使用 OpenID Connect (OIDC) 凭证来对云服务提供商(如 HashiCorp Vault、AWS、Azure 和 GCP)进行身份验证,而无需使用长期有效的凭证或密码。
背景与需求
现代云开发通常需要 CI/CD 服务器对云服务提供商进行身份验证,以便对已配置的基础设施进行更改。传统上,这通常是通过在云服务提供商中创建一个身份,CI/CD 服务器通过使用一组长期有效且手动设置的凭证来承担该身份。由于这些凭证的用途,其泄露一直是一个重大的业务风险。
OpenID Connect 协议
OpenID Connect 是一种可互操作的机制,用于提供关于用户身份的可验证信息。如果用户的身份提供商是验证方可以信任的,那么相关的用户数据可以作为声明包含在称为 ID Token 的 Json Web Token (JWT) 中。
GitHub Actions 的 OIDC 集成
在 GitHub Actions 中,首先需要在云服务提供商的身份和访问管理配置中将 GitHub 注册为外部身份源。在执行工作流时,管道可以访问一个针对该管道唯一运行的 ID Token。该令牌包括令牌的预期受众及其持有者的标识符等元数据。
云服务提供商可以使用这些信息来颁发短期有效的凭证(例如访问令牌),用于后续操作。GitHub Actions 目前支持与 HashiCorp Vault、Amazon Web Services、Azure 和 Google Cloud Platform 的集成。
行业反应
自该功能发布以来,反响普遍积极。HashiCorp 的创始人 Mitchell Hashimoto 在推特上表示,GitHub Actions 为每次运行创建 OIDC 身份的可能性非常大,可以配置 Vault 以允许使用 Actions 身份进行认证,并随后使用该身份访问任何内容。
然而,尽管反响热烈,采用速度似乎比预期要慢。WhiteDuck 的 DevOps 咨询与运营负责人 Nico Meisenzahl 在推特上提问,是否已经有很多人使用 OIDC 认证与云服务提供商和 Kubernetes 在 GitHub Actions 中进行集成。
其他 CI/CD 提供商的类似功能
自 GitHub 在 2021 年底发布该功能以来,其他 CI/CD 提供商也增加了类似的功能。GitLab 15.7 版本在 2022 年底发布,支持访问 HashiCorp Vault、AWS、Azure 和 GCP。Circle CI 在 2023 年 2 月宣布支持 GCP 和 AWS 的集成。
成本与可用性
GitHub Actions 的 OIDC 登录功能在所有计划中均可免费使用,无需额外费用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。