尽管使用AWS ubuntu容器,但我仍获得AWS ECR退出状态255

时间:2018-10-08 01:11:45

标签: amazon-ecs aws-codebuild aws-ecr

我试图在AWS代码构建中构建一个Docker容器,作为将容器部署到ECR的一种方式,但是出现此错误。

Error while executing command: $(aws ecr get-login --region ap-southeast-1). Reason: exit status 255

enter image description here

此命令使用aws / codebuild / ubuntu-base:14.04在buildspec.yml文件上运行,如果要构建Docker映像或希望构建获得提升的特权,请启用此标志。

日志文件如下:

[Container] 2018/10/11 00:52:49 Running command $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email)

An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:sts::502776083946:assumed-role/code-build-timesheet/AWSCodeBuild-f1d205b1-b03f-4727-a4d7-a02118021eec is not authorized to perform: ecr:GetAuthorizationToken on resource: *

[Container] 2018/10/11 00:52:52 Command did not exit successfully $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email) exit status 255
[Container] 2018/10/11 00:52:52 Phase complete: INSTALL Success: false
[Container] 2018/10/11 00:52:52 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email). Reason: exit status 255

3 个答案:

答案 0 :(得分:3)

此状态码通常表示未经授权的用户。要解决此问题,我们需要让我们的代码构建角色能够与ECR进行对话。为此,请执行以下操作:转到IAM,然后将AmazonEC2ContainerRegistryPowerUser策略附加到您的CodeBuild角色。

答案 1 :(得分:0)

您的cloudwatch日志中是否还有其他特定错误?像AccessDenied还是其他?失败的命令部分周围的日志中应包含一些详细信息。 谢谢, 辛

答案 2 :(得分:0)

就我而言,我添加了权限,但仍然遇到相同的问题。后来发现我在 IAM 角色中的“权限边界”没有让权限通过。因此,如果您将权限策略设置为允许 ecr:GetAuthorizationToken 但同时启用了权限边界,那么您需要向权限边界添加相同的权限(或删除权限边界)。

enter image description here

相关问题