You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GitHub Actions对接CodeBuild运行工作流报安全令牌无效如何解决

错误原因

你触发报错的核心原因是临时凭证参数缺失、重复配置的静态凭证覆盖了有效临时凭证:使用aws-actions/configure-aws-credentials搭配role-to-assume参数时,会生成包含AWS_SESSION_TOKEN的临时访问凭证,而你手动配置的静态AK/SK没有对应token,同时多余的凭证传递逻辑进一步导致权限校验失败。

解决方案

按以下步骤调整你的工作流配置即可:

  • 第一步:移除Run CodeBuild步骤下重复定义的AWS凭证类环境变量,不需要手动传入AK/SK、区域、角色信息
  • 第二步:删除env-vars-for-codebuild列表里的AWS凭证相关参数,aws-codebuild-run-build会自动使用前一步生成的有效凭证调用API
  • 第三步:确认IAM角色信任策略允许你的IAM用户扮演该角色,且角色拥有codebuild:StartBuild权限
  • 第四步:检查GitHub仓库中配置的AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_ROLE_TO_ASSUME密钥无拼写错误、无多余字符、未过期

修正后的工作流配置示例

name: 'GitHub Actions For CodeBuild'
on:
  pull_request:
    branches:
      - test
env:
  tf_version: 'latest'
  tg_version: 'latest'
jobs:
  deploy:
    name: 'Build and Deploy'
    runs-on: ubuntu-latest
    steps:
      - name: 'checkout'
        uses: actions/checkout@v2

      - name: configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{secrets.AWS_ACCESS_KEY_ID}}
          aws-secret-access-key: ${{secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-1
          role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
          role-duration-seconds: 3600

      - name: Run CodeBuild
        uses: aws-actions/aws-codebuild-run-build@v1
        with:
          project-name: CodeBuild
          buildspec-override: stage/dev-env/buildspec.yml
          env-vars-for-codebuild: |
            TF_INPUT
        env:
          TF_INPUT: false

补充说明:如果你的CodeBuild构建脚本内部需要使用AWS权限,直接给CodeBuild项目本身绑定对应IAM角色即可,不需要从GitHub Actions侧传递凭证,既可以降低权限泄露风险,也能避免凭证校验错误。

内容的提问来源于stack exchange,提问作者dcloud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:09:03