首页 > 解决方案 > CodePipeline 中的 AWS CodeCommit 权限错误

问题描述

我正在尝试按照此示例设置 AWS Pipeline以跨多个账户使用。我设置了四个不同的帐户。我已经成功地完成了这个过程的每一步。没有命令产生任何错误。管道成功完成。然后我可以连接到管道并提交我的代码更改。简而言之,直到最后一步的每一步都按照文档中的说明工作。

但是,然后在代码提交的初始触发器上出现错误:

权限不足 服务角色或操作角色没有访问名为 dbmigration 的 AWS CodeCommit 存储库所需的权限。更新 IAM 角色权限,然后重试。错误:用户:arn:aws:sts::12345678912:assumed-role/my-pipeline-CodePipelineRole-1UPXOXOXO1WD0H/987654321 无权执行:codecommit:UploadArchive on resource:arn:aws:codecommit:us-east-2: 123456789:数据库迁移

我用于创建管道的 AWS 账户不是根账户,而是具有跨账户管理员权限的 IAM 管理员登录。我已经尝试添加 AWSCodeCommitFullAccess 和 AWSCodePipelineFullAccess,我原以为无论如何这都是管理的一部分。然而,这并没有改变什么。

我的假设是我做错了什么,但我无法确定那是什么。任何有关更好故障排除的建议,更不用说有关如何修复它的建议,都将受到欢迎。

同样,用于创建管道的代码使用 IAM 登录名 Administrator 从第四个 AWS 账户运行,如下所示:

aws cloudformation deploy --stack-name my-pipeline `
--template-file db-migration-master.yml `
--parameter-overrides ProjectName=dbmigration `
EmailAddress=grant@scarydba.com `
DevAccountId=98765432123 `
TestAccountId=123456789012 `
ProdAccountID=210987654321 --capabilities CAPABILITY_NAMED_IAM

所有模板均来自链接文章,未修改或自定义。

标签: amazon-web-servicesaws-codepipelineaws-codecommit

解决方案


根据评论。

错误消息表明该角色my-pipeline-CodePipelineRole-1UPXOXOXO1WD0H/987654321缺少以下权限 codecommit:UploadArchive

向 AWS CodePipeline 的服务角色授予将存储库更改上传到管道的权限

解决方案是将角色添加为codecommit:UploadArchive联策略


推荐阅读