AWS CodeBuild 中的 GetAuthorizationToken 权限错误

Posted

技术标签:

【中文标题】AWS CodeBuild 中的 GetAuthorizationToken 权限错误【英文标题】:GetAuthorizationToken permission error in AWS CodeBuild 【发布时间】:2019-03-31 01:52:45 【问题描述】:

我正在尝试使用 AWS CodeBuild 设置我的 Node 项目。

version: 0.2
phases:

  pre_build:
    commands:
      - $(aws ecr get-login)
      - TAG="$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | head -c 8)"

  build:
    commands:
      - docker build -t "$REPOSITORY:$TAG" .

  post_build:
    commands:
      - docker push "$REPOSITORY:$TAG"

当我触发构建时,命令 $(aws ecr get-login) 失败:

调用时发生错误 (AccessDeniedException) GetAuthorizationToken 操作:用户无权执行:ecr:GetAuthorizationToken 对资源:* [容器] 2018/10/26 10:04:12 命令没有成功退出 $(aws ecr get-login) 退出状态 255

在 IAM 控制台中,用户附加了以下策略:

AmazonEC2ContainerRegistryFullAccess AmazonEC2ContainerRegistryPowerUser

并且两者都包含ecr:GetAuthorizationToken 权限。

我错过了什么?

【问题讨论】:

【参考方案1】:

解决了。我需要将ecr:GetAuthorizationToken 权限授予角色,而不是授予用户。

【讨论】:

感谢您解决了这两天寻找解决方案的可怕问题。 很高兴为您提供帮助:)

以上是关于AWS CodeBuild 中的 GetAuthorizationToken 权限错误的主要内容,如果未能解决你的问题,请参考以下文章

AWS CodePipeline 能否在不劫持 CodeBuild 的工件设置的情况下触发 AWS CodeBuild?

AWS Batch 与 AWS CodeBuild

无法将更改从 AWS CodeBuild 推送到 AWS CodeCommit

AWS CodeBuild buildspec bash 语法错误:用 if 语句替换错误

AWS CodePipeline 不遵守 CodeBuild 设置

使用 AWS CDK 创建用于构建 Docker 映像的 CodeBuild 项目