AWS CLI在第二次运行时会引发“找不到凭据”

我试图使用用户数据脚本在启动时使用AWS CLI(1.8.7)将某些文件从S3下载到EC2实例。 此实例具有适当权限的IAMangular色和实例configuration文件。 有时,CLI将失败,并显示错误“找不到凭据”。 它经常发生(不是每一次),而是总是一个单独的S3命令之后运行。 这是脚本的输出:

++ date +%r 03:24:10 AM ++ aws s3 cp s3://non-public-bucket-1/15mb-zip-file.zip ./15mb-zip-file.zip Completed 1 of 1 part(s) with 1 file(s) remaining^Mdownload: s3://non-public-bucket-1/15mb-zip-file.zip to 15mb-zip-file.zip ++ date +%r 03:24:14 AM ++ unzip 15mb-zip-file.zip # Snip ++ date +%r 03:26:01 AM ++ curl http://169.254.169.254/latest/meta-data/instance-id % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 10 100 10 0 0 13831 0 --:--:-- --:--:-- --:--:-- 10000 i-12345678++ date +%r 03:26:01 AM ++ aws s3 cp s3://non-public-bucket-2/my-small-text-file.json ./output.json download failed: s3://non-public-bucket-2/my-small-text-file.json to output.json Unable to locate credentials ++ date +%r 03:26:34 AM 

任何想法可能会导致这一点?

编辑:这是一个亚马逊Linux服务器。

我有同样的问题,甚至联系了支持,他们无法提供答案。 将凭据导出到环境variables不适用于aws s3 ...命令。 你必须使用aws configure util或者像这样创build一个~/.aws/config文件:

 [default] aws_access_key_id=foo aws_secret_access_key=bar region=us-west-2 

请参阅http://docs.aws.amazon.com/cli/latest/topic/config-vars.html上的 AWS文档

我不仅发现无法通过用户数据在EC2启动时执行环境导出,而且还在完全部署的运行实例上从命令行启动。