Packer amazon-ebs:AuthFailure

时间:2014-12-11 22:55:46

标签: amazon-web-services packer

由于某种原因,Packer无法向AWS进行身份验证,但使用普通的aws客户端可以正常工作,并且我的环境变量已正确设置:

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 个答案:

答案 0 :(得分:1)

问题在于Packer使用AWS进行身份验证的方式。

Packer是用go编写的,使用goamz进行身份验证。使用aws saml创建配置时,会在〜/ .aws:config和凭证中生成几个文件。

事实证明,此凭据文件优先于环境变量,因此如果这些凭据不正确并且您依赖于环境变量,则会出现相同的错误。

由于aws-saml需要定义aws_access_key_id和aws_secret_access_key,因此在这种情况下删除凭证文件是不够的。

我们必须将这些值复制到〜/ .aws / config并删除凭证文件,然后Packer很乐意使用我们的环境变量。

已经在github中为goamz引发了一个故障单,因此AWS CLI和Packer可以具有相同的身份验证行为,如果您遇到问题,请随时投票:https://github.com/mitchellh/goamz/issues/171