由于身份验证,AWS ECR 推送在 Azure Devops 上失败

基本的

我将 Azure DevOps 管道用于 CI/CD。我正在尝试 Dockerize 并将我的 docker 映像推送到 AWS ECR。我已经在 Azure Devops 上添加了 Docker Registry(并且可以访问所有管道),我创建并使用了 IAM 用户和 AdministrativeAccess,并向 Azure Devops 添加了凭据。但是,在我的 Docker Push 任务中,unauthorized: authentication required出现错误并且我的工作失败了。这是我的推送任务

          - task: Docker@2
            displayName: "PUSH IMAGE TO AWS"
            inputs:
              containerRegistry: AWS
              repository: $(DOCKER_REPOSITORY_NAME)
              command: push
            enabled: true
Levi Lu-MSFT

IAM 用户不能用于直接登录 AWS ECR。您将需要使用AWS.AccessKeyIDAWS.SecretAccessKey 获取 Docker 身份验证令牌以登录 AWS ECR。请参阅此文档

将 docker 映像推送到 AWS ECR 有两种解决方法。

1、如果你像你所做的那样在 azure 管道中使用 Docker 任务。您需要添加一个脚本任务来获取身份验证令牌并首先登录 AWS ECR。见下文:

steps:
- script: |
    aws ecr get-login-password --region $(AWS_REGION) | docker login --username AWS --password-stdin $(AWS_ACCOUNT_ID).dkr.ecr.$(AWS_REGION).amazonaws.com
  displayName: 'Login to AWS'
  env:
    AWS_ACCESS_KEY_ID: $(AWS_ACCESS_KEY_ID)
    AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY)

- task: Docker@2
  displayName: Build docker image
  inputs:
    repository: $(DOCKER_REPOSITORY)
    command: buildAndPush

请查看此博客中的详细步骤

2、更方便的解决方法是使用AWS Toolkit for Azure DevOpsAmazon ECR Push任务)。此任务将自动获取身份验证令牌并登录 docker 客户端。因此,在构建映像后,您可以使用此任务将其推送到 Amazon ECR。

要使用 Amazon ECR 推送任务,您需要创建一个服务连接(AWS类型)。

有关更多信息,请参阅此线程

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

由于身份验证失败,无法将本地git推送到Azure DevOps git存储库,但密码正确

在Azure DevOps管道中将Docker映像任务推送到ACR失败,带有“未授权:需要身份验证”

运行DevOps Server部署模板时,Active Directory帐户/密钥库身份验证上的Azure LinkedAuthorization失败

Azure DevOps nuget 推送失败,但任务显示为成功

使用 Azure Active Directory 时 Azure Devops REST API 身份验证失败

Git推送导致“身份验证失败”

Azure DevOps 推送到 GitLab

Docker推送到AWS ECR私有存储库失败,并显示格式错误的JSON

aws cdk 将映像推送到 ECR

使用 Azure DevOps Pipelines 和 docker-compose 构建和推送 docker 镜像到 ACR 时出现身份验证错误

Azure DevOps在“ npm安装”上失败

Docker构建在Azure DevOps上失败

Azure AD中“由于以下原因导致身份验证失败:jwt受众无效”

由于授权标头,Azure Blob 存储 403 身份验证失败

将启用了LFS的本地Git存储库推送到空的Azure Devops失败

将 zip 文件推送到 azure devops

Azure DevOps服务-使用本地ADFS进行身份验证

Azure DevOps REST API-无头身份验证

Azure DevOps Rest API-身份验证

尝试在Azure DevOps管道外壳中运行“ aws ecr-get-login-password”命令时获取“ InvalidSignatureException”

Azure 错误:DefaultAzureCredential 身份验证失败

Azure Git身份验证失败

Azure 存储 SAS 身份验证失败

由于缓存的凭据错误,无法将代码推送到Azure DevOps

將代碼推送回 Azure Devops 上的 TFVC 存儲庫

将Docker容器从Locak推送到AWS ECR

我无法将Docker映像推送到AWS ECR

TeamCity:将Docker映像推送到AWS ECR

docker-compose推送图像到AWS ECR