AWS ECR GetAuthorizationToken问题

时间:2019-01-07 14:33:26

标签: amazon-web-services jenkins-cli aws-iam aws-ecr

我有Jenkins设置,用于将docker映像部署到Amazon ECR存储库。
我在AWS账户中为IAM用户启用了2FA。我已将所有管理策略附加到我的IAM用户。我正在按照以下命令将Docker映像源推送到Amazon ECR存储库。

locations = from(l in Locations, order_by: [asc: l.sort_order], select: [l.address])

MyApp.User.find_by_id(1)
|> join(:left, [u], l in subquery(locations), on: l.user_id == u.id)
|> select([u, l], %User{u | locations: l})
|> Repo.one

引用链接:https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

詹金斯代码:

aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

当我部署到Amazon ECR时遇到了问题。

  1. “调用GetSessionToken操作时发生错误(AccessDenied):无法使用会话凭据调用GetSessionToken”

  2. “调用GetSessionToken操作时发生错误(AccessDenied):MultiFactorAuthentication失败,无法验证MFA代码”

参考链接: AWS ECR GetAuthorizationToken

2 个答案:

答案 0 :(得分:1)

无论如何,ECR令牌的有效期很短,您可以尝试使用ecr凭证帮助器。 并指向您的Docker来利用帮助程序

{
"credHelpers": {
    "aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"
}

}

引用:https://lwpro2.wordpress.com/2019/10/30/authenticating-amazon-ecr-repositories-for-docker-cli-with-credential-helper/

答案 1 :(得分:0)

查看aws生成的AWS_SECRET_ACCESS_KEY是否具有“ /”。如果您使用“ /”,则生成一个新的不带AWS_SECRET_ACCESS_KEY的AWS_SECRET_ACCESS_KEY,并添加它可以正常工作\ o /