已配置AWS OIDC提供商仍遇GitHub Actions报错的问题咨询
问题排查:GitHub Actions OIDC 连接AWS报错 "No OpenIDConnect provider found"
问题详情
用到的GitHub Actions YAML配置
jobs: AssumeRoleAndCallIdentity: runs-on: ubuntu-latest steps: - name: Git clone the repository uses: actions/checkout@v3 - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v1 with: role-to-assume: ${{ secrets.AWS_ROLE_ARN }} role-session-name: GitHub_to_AWS_via_FederatedOIDC aws-region: ${{ secrets.AWS_REGION }}
报错信息
Run aws-actions/configure-aws-credentials@v1 Error: No OpenIDConnect provider found in your account for https://token.actions.githubusercontent.com
用户说明:已在AWS中为token.actions.githubusercontent.com配置了OpenID Connect提供商,且该身份提供商已与使用的角色建立信任关系,但仍出现上述报错。
可能的原因及解决方法
- 确认AWS账户一致性:检查
secrets.AWS_ROLE_ARN对应的AWS账户,和你创建OIDC提供商的账户是否为同一个。跨账户使用角色时,目标账户必须也配置了对应的OIDC提供商,否则会找不到。 - 核对OIDC提供商的受众配置:进入AWS IAM控制台的身份提供商页面,查看你创建的GitHub OIDC提供商的受众(Audience)是否为
sts.amazonaws.com。如果填错了其他值,会导致令牌验证失败,触发该报错。 - 检查角色信任策略的实体限制:查看角色的信任策略,确认其中的条件是否匹配当前运行GitHub Actions的仓库/组织。比如信任策略中的
sub字段是否设置为repo:你的用户名/仓库名:*(针对单个仓库)或org:你的组织名:*(针对整个组织),如果限制范围和实际运行的仓库不匹配,也会出现验证问题。 - 验证AWS区域配置:虽然OIDC提供商是全局资源,但确保
secrets.AWS_REGION填写的是有效的AWS区域代码(如us-east-1、ap-southeast-1等),避免因区域配置错误导致的异常。 - 检查OIDC提供商URL的准确性:确认AWS中创建的OIDC提供商URL完全是
https://token.actions.githubusercontent.com,不要出现拼写错误、多斜杠或使用HTTP协议的情况。 - 升级AWS Actions版本:当前使用的
configure-aws-credentials@v1版本较旧,建议升级到最新的v4版本,新版本修复了多个OIDC相关的兼容性问题,能减少这类异常的出现。
内容的提问来源于stack exchange,提问作者CFL_Jeff
相关产品推荐
相关产品推荐

