использовать aws-vault для отправки изображения docker в ECR не удалось

#amazon-web-services #docker #aws-cli #amazon-ecr

Вопрос:

Я пытаюсь перенести изображение docker в ECR с моего mac. Я добавил идентификатор в aws-vault, но с помощью aws-vault не удалось получить пароль. Мой коллега имеет такие же привилегии, и он может без проблем войти в ECR.

 .aws % aws-vault list   Profile Credentials Sessions   ======= =========== ========   identity identity -  .aws % ENCRYPTED_PASSWORD=$(aws-vault exec identity -- aws ecr get-login-password --region us-west-2)    An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::97xxxxxxxxxx:user/xxxxx.xxxxxx@xxxxxxxxx.com is not authorized to perform: ecr:GetAuthorizationToken on resource: * with an explicit deny in an identity-based policy  

Мы используем одну и ту же роль. Я намерен выполнить следующую строку, как только будет получено ЗАШИФРОВАННОЕ пароль—

 aws-vault exec identity -- aws ecr --region us-west-2 | docker login -u AWS -p ${ENCRYPTED_PASSWORD} xxxxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/my-ecr  

В моем файле .aws/config эта строка ссылается на вышеизложенное.

 [profile identity]  

Поскольку у моего товарища по команде такая же политика/разрешение, я не вижу проблемы с «GetAuthorizationToken». Что еще? Я пытаюсь найти способ перенести мои изображения docker с Mac на ECR.

Полностью переделайте конфигурацию, привязав все роли к идентификатору.

 [profile xx-xxxx-services-monitoring] role_arn=arn:aws:iam::xxxxxxxxxxxx:role/XXMonitoring source_profile=identity sparent_profile=mfa  [profile identity]  

Теперь проблема с токеном-я ввел код из MFA Authenticator, но не смог

 .aws % aws-vault exec xx-xxxx-main-admin -- aws ecr get-login --region us-west-2 Warning: parent_profile is deprecated, please use include_profile instead in your AWS config Enter token for arn:aws:iam::xxxxxxxxxxxx:mfa/xxxxxx.xxxx@xxxxxx.com: **125492** aws-vault: error: exec: Failed to get credentials for xx-xxxx-main-admin: AccessDenied: MultiFactorAuthentication failed, unable to validate MFA code. Please verify your MFA serial number is valid and associated with this user.  status code: 403, request id: 25808115-d9fa-480d-87d4-xxxxxxxxxxxxx  

Не похоже, что токен действителен от MFA аутентификатора

Ответ №1:

  1. первый aws-vault «GetAuthorizationToken» был вызван неработоспособным, неформатированным файлом конфигурации ~/.aws/. Роли должны быть указаны в следующем формате—

    [профиль xx-xxxx-мониторинг служб] role_arn=arn:aws:iam::xxxxxxxxxxxx:роль/XXMonitoring source_profile=идентификатор sparent_profile=мид

    [идентификация профиля]

  2. Вторая часть-это вопрос МИД. Серийный номер MFA должен соответствовать тому, что вы настроили в своем аутентификаторе. (ДУЭТ, Аутентификатор, Аутентификатор…) В вашей ~/.aws/конфигурации должен быть этот раздел—

    [профиль МИД] mfa_serial=arn:aws:iam::xxxxxxxxxxxx:mfa/xxxxx.xxxx@xxxxx.com