首页/开发/CI/CD 与发布速查/CI 与云的 OIDC 联邦(免长期密钥)
环境与配置管理60 条

CI 与云的 OIDC 联邦(免长期密钥)

CI 平台签发带身份的短时令牌,云侧按信任策略换取临时凭据:仓库里不再存放云 Access Key。

CI/CD 与发布速查开发更新于 2026-10-12
GitHubid-token: write + 云厂商官方登录 action(role-to-assume 等),信任策略限定 repo/分支/环境
GitLabid_tokens 声明受众(aud),作业中用 OIDC 换取云令牌
价值凭据短时、可条件化、无需轮换长期密钥

GitHub Actions 示例

GitHub Actions 示例
permissions:
  id-token: write
  contents: read
steps:
  - uses: aws-actions/configure-aws-credentials@v4
    with:
      role-to-assume: arn:aws:iam::111122223333:role/ci-deploy
      aws-region: cn-north-1
信任策略必须收窄:不加条件的信任等同于对全网开放该角色。

易错点

  • 信任条件只看仓库不看分支:任意 PR 都能扮演发布角色,加上分支/环境保护条件
  • 受众(aud)配置不校验:跨服务重放风险,按文档固定受众

数据来源与参考

  • GitHub Docs《About security hardening with OpenID Connect》
  • GitLab Docs《ID tokens》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌