AWS CLI第二次运行时抛出“无法找到凭证”


9

我正在尝试使用用户数据脚本在启动时使用AWS CLI(1.8.7)将一些文件从S3下载到EC2实例。该实例具有一个具有适当权限的IAM角色和实例配置文件。有时,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

知道是什么原因造成的吗?

编辑:这是一台Amazon Linux服务器。


您是否尝试过在获取文件之前设置10秒的延迟?也许第一次运行命令时IAM凭据尚未到位。
EEAA

我在Ubuntu 16.04 LTS上遇到了完全相同的问题。
sj26

Answers:


3

我遇到了同样的问题,甚至联系了支持人员,他们无法提供答案。将凭据导出到环境变量不适用于aws s3 ...命令。您必须使用aws configureutil或创建~/.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时,我不仅发现它完全无法执行环境导出操作,而且还发现了在完全部署的运行实例上从命令行发布启动后的情况。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.