CodePipeline 中的 AWS CodeCommit 权限错误

AWS CodeCommit Permissions Errors in CodePipeline

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

但是,我在代码提交的初始触发时遇到错误:

Insufficient permissions The service role or action role doesn’t have the permissions required to access the AWS CodeCommit repository named dbmigration. Update the IAM role permissions, and then try again. Error: User: arn:aws:sts::12345678912:assumed-role/my-pipeline-CodePipelineRole-1UPXOXOXO1WD0H/987654321 is not authorized to perform: codecommit:UploadArchive on resource: arn:aws:codecommit:us-east-2:123456789:dbmigration

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

我的假设是我做了一些非常错误的事情,但我无法确定那是什么。任何更好的故障排除建议,更不用说如何修复它的建议。

再次使用来自第四个 AWS 账户的 IAM 登录名管理员运行,用于创建管道的代码如下:

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

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

根据评论。

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

Grants permission to the service role for AWS CodePipeline to upload repository changes into a pipeline

解决方案 是将 codecommit:UploadArchive 作为 inline policy 添加到角色中。