编辑CodeBuild项目遇“可信主体不属于该服务”错误的排查问询
问题分析与解决方案
可能原因1:CodeBuild服务关联角色信任策略异常
CodeBuild项目依赖名为AWSServiceRoleForCodeBuild的服务关联角色来和其他AWS服务交互。如果这个角色的信任策略被篡改,导致codebuild.amazonaws.com这个服务主体不在信任列表里,哪怕你有项目管理员权限,也会触发这个错误。
可能原因2:源提供商的关联角色配置冲突
如果你的项目源是GitHub、GitLab这类外部平台,添加Actor ID时可能误改了源身份验证角色的信任策略,使得该角色没有正确信任CodeBuild或对应源服务的主体。
排查修复步骤
修复CodeBuild服务关联角色
- 打开IAM控制台,搜索
AWSServiceRoleForCodeBuild角色 - 查看「信任关系」,确保包含以下策略内容:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } - 要是策略被改了,点击「编辑信任策略」恢复上述内容,保存后再试修改CodeBuild项目。
- 打开IAM控制台,搜索
检查源配置的关联角色
- 在CodeBuild项目的源配置页,找到使用的身份验证角色(针对外部源)
- 进入IAM控制台找到该角色,确认信任策略里有对应的服务主体:
- GitHub/GitLab源:必须信任
codebuild.amazonaws.com - CodeCommit源:按需信任
codecommit.amazonaws.com
- GitHub/GitLab源:必须信任
- 修正策略后重新保存项目配置。
用AWS CLI尝试修改
要是控制台还是报错,试试用CLI命令绕开可能的缓存问题:# 先获取原项目配置 aws codebuild batch-get-projects --names <你的项目名称> # 修改源配置后执行更新 aws codebuild update-project --name <你的项目名称> --source <修改后的源配置JSON>
内容的提问来源于stack exchange,提问作者Abdalrahman Shatou
相关产品推荐
相关产品推荐

