无法更新CodeBuild中的服务角色,并显示错误“策略未附加到角色”

问题描述

当我创建一个全新的CodeBuild项目时,它允许我选择一个IAM服务角色,并且当我选中“允许AWS CodeBuild修改该服务角色以便它可以与该构建项目一起使用”框时,AWS会进行修改该服务角色以及针对该角色的自定义策略。

但是,如果在创建该CodeBuild项目后,我想给它附加一个不同的服务角色,我会不断收到以下消息:“策略未附加角色[x]”

enter image description here

我很确定我在某处缺少许可,但是我不确定在哪里。

编辑更多故障排除数据:

  • 如果取消选中“允许aws [...]”框,则可以更新CodeBuild项目配置,但是所有后续构建均在启动时失败。这是预期的。

  • 如果我尝试重新添加在创建该项目时添加到该项目中的原始服务角色,则可以毫无问题地添加它。

解决方法

当我尝试创建可供我的所有 CodeBuild 项目使用的更通用的角色时,我遇到了类似的问题。我解决它的方法是取消选中“允许 AWS CodeBuild 修改此服务角色,以便它可以与此构建项目一起使用”复选框

我必须确保我附加的角色具有所有必要的 IAM 权限,以便我的后续构建继续运行

enter image description here

,

我遇到了同样的问题,并注意到分配给CodeBuild项目的先前角色还附加了一个托管策略,该策略是在最初创建该项目时添加的。这个角色的命名与此类似:

CodeBuildBasePolicy- 项目名称 -us-west-2

我将此政策附加到了新角色上,并将其与旧角色分离。

此后,我能够选择“更新环境”,但没有收到错误消息。