我有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时遇到了问题。
“调用GetSessionToken操作时发生错误(AccessDenied):无法使用会话凭据调用GetSessionToken”
“调用GetSessionToken操作时发生错误(AccessDenied):MultiFactorAuthentication失败,无法验证MFA代码”
答案 0 :(得分:1)
无论如何,ECR令牌的有效期很短,您可以尝试使用ecr凭证帮助器。 并指向您的Docker来利用帮助程序
{
"credHelpers": {
"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"
}
}
答案 1 :(得分:0)
查看aws生成的AWS_SECRET_ACCESS_KEY是否具有“ /”。如果您使用“ /”,则生成一个新的不带AWS_SECRET_ACCESS_KEY的AWS_SECRET_ACCESS_KEY,并添加它可以正常工作\ o /