web-dev-qa-db-ja.com

AWS CLIは、2回目の実行時に「資格情報が見つかりません」をスローします

ユーザーデータスクリプトを使用して起動時にAWS CLI(1.8.7)を使用して、S3からEC2インスタンスにいくつかのファイルをダウンロードしようとしています。このインスタンスには、適切な権限を持つIAMロールおよびインスタンスプロファイルがあります。 CLIが「資格情報が見つかりません」というエラーで失敗する場合があります。これは頻繁に発生しますが(毎回ではありません)、常にafter機能する個別の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サーバーです。

9
Simon Paris

私も同じ問題を抱えており、サポートに連絡しても、回答を提供できませんでした。認証情報を環境変数にエクスポートすると、aws s3 ...コマンドでは機能しません。 aws configure utilを使用するか、次のような~/.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を起動すると、環境のエクスポートがまったく実行されないだけでなく、完全にデプロイされた実行中のインスタンスのコマンドラインから起動後にも実行に失敗しました。

3
Steven K7FAQ