AWS CodeBuild GetAuthorizationToken失败

Nuc*_*eus 4 amazon-ec2 amazon-web-services aws-codepipeline aws-codebuild

我正在尝试构建我的测试项目,但是每次它在pre_build中失败。我检查了错误日志,上面写着:

[容器] 2017/03/26 19:28:21调用GetAuthorizationToken操作时发生错误(AccessDeniedException):用户:arn:aws:sts :: 074181202020:assumed-role / codebuild-Testing-project-service-role / AWSCodeBuild未经授权执行:资源上的ecr:GetAuthorizationToken:*

我尝试附加以下政策:

  • IAMSelfManageServiceSpecificCredentials
  • IAMF完全访问
  • AmazonS3ReadOnlyAccess
  • CodeBuildPolicy-Testing-project-1490555003058
  • IAMReadOnlyAccess
  • AWSCodeBuildAdminAccess
  • IAMUserSSHKeys
  • AWSCodeCommitFullAccess
  • IAMF完全访问
  • AmazonS3FullAccess
  • 管理员访问
  • AWSElasticBeanstalkFullAccess
  • AWSCodePipelineFullAccess
  • WSCodeBuildAdminAccess

但这仍然给我同样的错误

任何帮助,将不胜感激!谢谢!

Jim*_*mmy 9

实际上,无法在ECR中解决getAuthorizationToken错误(因为您甚至在那儿都看不到ecr:getAuthorizationToken)。

您需要转到IAM面板=>角色=> CodeBuild角色=>授予策略=> AmazonEC2ContainerRegistryReadOnly

这使其能够获得令牌


Cla*_*ori 8

您需要向 ECR 存储库策略添加权限,而不是向 CodeBuild 服务角色添加权限。此页面包含回购政策示例:https : //docs.aws.amazon.com/codebuild/latest/userguide/sample-ecr.html

  • 这有什么关系?该文档中未提及 ecr:GetAuthorizationToken 并且在执行这些步骤后发生错误。 (2认同)

Ash*_*hot 6

当您配置 AWS Codebuild 时,它会创建服务角色并附加默认策略以写入日志并将文件放入 S3 存储桶。为了使 CodeBuild 底层实例能够访问 ECR,您应该将策略附加到该服务角色。

您可以使用一些托管策略,例如:

AmazonEC2ContainerRegistryFullAccess

了解更多信息:

https://aws.amazon.com/blogs/devops/build-a-continuous-delivery-pipeline-for-your-container-images-with-amazon-ecr-as-source/