2014-12-11 3 views
0

По какой-то причине упаковщик не удается пройти проверку подлинности на AWS, используя обычный клиент AWS работает, хотя, и мои переменные окружения установлены правильно:Packer амазонка-EBS: AuthFailure

AWS_ROLE_SESSION_NAME=... 
AWS_SESSION_TOKEN=... 
AWS_SECRET_ACCESS_KEY=... 
AWS_ROLE=... 
AWS_ACCESS_KEY_ID=... 
AWS_CLI=... 
AWS_ACCOUNT=... 
AWS_SECURITY_TOKEN=... 

Я использую проверку подлинности с помощью AWS SAML, и Packer дает мне следующее:

Error querying AMI: AWS was not able to validate the provided access credentials (AuthFailure) 

ответ

1

Проблема заключается в том, что упаковщик аутентифицируется с помощью AWS.

Упаковщик написан в go и использует goamz для аутентификации. При создании конфигурации с использованием aws saml в файлах ~/.aws: config и credentials генерируется несколько файлов.

Оказывается, этот файл учетных данных имеет приоритет над переменными среды, поэтому, если эти учетные данные неверны и вы полагаетесь на переменные среды, вы получите ту же ошибку.

Поскольку aws-saml необходимо определить aws_access_key_id и aws_secret_access_key, удаление файла учетных данных в этом случае будет недостаточным.

Нам пришлось скопировать эти значения в ~/.aws/config и удалить файл учетных данных, а затем Packer был рад использовать наши переменные окружения.

билет был поднят в GitHub для goamz так AWS CLI и упаковщик может иметь такое же поведение, проверяющий, не стесняйтесь голосовать его, если у вас есть вопрос тоже: https://github.com/mitchellh/goamz/issues/171

Смежные вопросы